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”是用来指定用户的

图片描述
图片描述
图片描述

7.配置ViewController

图片描述

8.运行


邓琳平
59 声望11 粉丝

这个人很懒