1.业务环境
Spring Boot Websocket
SocketJS
Stomp.js
2.业务流程
Host设置口令,创建聊天室。
Guest输入口令,进入房间。
3.问题描述
我们已经知道,SocketJS与Spring Boot Websocket通过endpoint建立连接,Stomp客户端通过这个连接可以订阅消息以及发送消息。
我们想要了解,在Spring Boot Websocket中,如何根据用户的需要,动态地新建频道,让用户订阅消息以及发送消息,以实现创建聊天室的功能?
根据我的理解,应该是这么一个流程:
Host
设置口令,点击创建
服务器接收到请求,为该口令生成一个唯一的channel(例如:room-xxx),在渲染的页面里面将
room-xxx
渲染到页面里面,可以用input hidden之类的,返回页面Host浏览器接收到页面,然后通过stomp建立连接,订阅room-xxx
Guest
这个和Host类似,区别只是服务器接收到口令后直接找到channel的名称,然后渲染到页面上,这样通过口令就可以使他们在一个聊天室里了