构建即时通讯应用:Spring boot高效集成WebSocket、Stomp协议完成前后端持续通信
@Controller
public class WebSocketController {
@MessageMapping("/chat.sendMessage")
@SendTo("/topic/public.messages")
public ChatMessage sendMessage(ChatMessage message) {
return message;
}
@MessageMapping("/chat.addUser")
@SendTo("/topic/public.messages")
public ChatMessage addUser(@Payload ChatMessage message,
SimpMessageHeaderAccessor headerAccessor) {
// 设置会话ID
headerAccessor.getSessionAttributes().put("username", message.getSender());
return message;
}
}
这个例子中,我们定义了一个WebSocket控制器,它使用@Controller
注解。控制器中有两个处理WebSocket消息的方法,分别处理发送消息和添加用户的动作。方法上的@MessageMapping
注解指定了要映射的消息类型的路径,@SendTo
注解指定了消息发送的目的地。这样,服务器可以将消息广播到所有订阅的客户端。此外,我们可以通过headerAccessor
获取和设置会话属性,例如用户名。
评论已关闭