1.引入依赖
这里引入Security、Thymeleaf和Websocket
2.配置Security
代码解释:Spring Security 对“/”和“/login”不拦截;
访问路径为“/login”,成功后转向“/chat”;在内存中分配两个用户,角色是“User”;
3.配置WebSocket
注册名为/endpointchat的endpoint,增加一个“/queue”的消息代理
4.编写Controller
通过SimpMessagingTemplate向浏览器发送消息;在参数中获得princple,principle包含当前用户信息;
这里写死了发送消息的双方;
messagingTemplate.convertAndSendToUser向用户发送消息,第一个参数是接收消息的用户,第二个是浏览器订阅的本身,第三个是消息
5.login页面
6.chat页面
var sock = new SockJS("/endpointChat"); //1
var stomp = Stomp.over(sock);
stomp.connect('guest', 'guest', function(frame) {
stomp.subscribe("/user/queue/notifications", handleNotification);//2
});
连接“/endpointChat”的endpoint并订阅/user/queue/notifications发送的消息,与Controller中messagingTemplate.convertAndSendToUser订阅地址保持一致,这里多的“/user”是用来指定用户的
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。