# WebSocket的使用

# 基本概念

# 消息代理

# STOMP协议

STOMP(Simple Text Oriented Messaging Protocol)是一个简单的文本导向的消息协议,它被设计用来在客户端和服务器之间发送和接收消息。STOMP协议本身是基于文本的,它定义了一系列简单的命令,这些命令用于订阅、发送和发布消息。

主要特点:

  1. 简单性:STOMP协议的语法简单明了,易于理解和实现。
  2. 文本导向:使用文本消息格式,如JSON或XML,便于调试和理解。
  3. 命令导向:通过一系列预定义的命令(例如CONNECT, SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK)进行交互。
  4. 无状态性:每次命令执行后,客户端和服务器之间的连接会保持开放状态,直到另一端关闭连接。
  5. 可扩展性:虽然STOMP协议本身很简单,但它允许通过头部字段扩展协议,以支持额外的功能和消息格式。

# 使用

# 注解的使用

情况1:如果只需要进行简单的通信,不需要消息代理和STOMP协议支持,那么只需要实现WebSocketConfigurer接口,使用的注解是@EnableWebSocket

情况2:情况2:如果需要消息代理和STOMP协议支持,那么需要实现WebSocketMessageBrokerConfigurer接口,使用的注解是@EnableWebSocketMessageBroker

情况3: 如果你的应用需要同时支持简单的WebSocket连接和基于STOMP的消息处理,可以同时实现这两个接口

# 问题

# 注解使用错误

org.springframework.context.ApplicationContextException: Failed to start bean 'subProtocolWebSocketHandler'; nested exception is java.lang.IllegalArgumentException: No handlers

例如实现的接口是WebSocketConfigurer,结果使用的注解是@EnableWebSocketMessageBroker

Last Updated: 11/18/2024, 4:01:47 PM