用Springboot WebSocket实现简单的群聊
2018-05-17 本文已影响0人
Vekaco
1.创建springboot项目:
打开spring initializer或其插件创建相应的项目,在依赖中添加Websocket,随后点击Generate Project将项目下载到本地;

2.将项目导入开发工具,下载依赖包进行开发前的准备;
3.新建AbstractWebSocketMessageBrokerConfigurer配置子类WebSocketConfig,重写registerStompEndpoints()方法提供服务器端点绑定地址,并通过withSockJS()提供sockJS回调;重写configureMessageBroker()指定服务器和客户端消息绑定地址前缀;通过注解启用@EnableWebSocketMessageBroker;

4.编写控制器LoginController,通过@MessageMapping注解映射消息处理方法的链接;通过@SendTo注解映射处理结果返回值的发送链接;

5.其中控制器中的Greeting和User都是简单的POJO;


6.在resources文件夹下新建static文件夹,在此文件夹下创建index.html;页面相当简单,消息发送输入框和按钮,以及用户名输入框和连接/断开按钮;如下图效果:

首先通过SockJS与服务器进行端点绑定,而后进行消息订阅,来获得服务器发送的消息;

消息的发送可以通过绑定服务器相应的MessageMapping指定的链接;通过发送json格式的数据想服务器发送消息;

其他类似代码以及DOM基本操作的代码不在此赘述。