
回复
本文主要来讲解如何使用WebSocket来实现一个简易的群聊功能。
引入maven依赖
项目的目录结构
接下来,我们来分析每个类的作用。
WebSocketApplication
这个类就是一个简单的启动引导类的功能。
WebSocketServer:群聊核心类
@ServerEndpoint:作用是用来表明当前类是一个节点类,当连接成功之后,用户的操作都会回调这个类对应的对象的方法,对象怎么创建的是根据configurator 属性对应的类来实现的,默认是每个连接对应的对象都是通过反射构建的,但是对于本群聊功能来说,是通过SpringBasedConfigurator对象来获取,这个类的作用接下来会剖析。
@OnOpen:当客户端与服务端建立连接的时候,会回调 @OnOpen 注解标记的方法
@PathParam:可以看成跟spring mvc中的@PathVariable注解作用一样,就是取出连接路径中的占位符对应的值
@OnMessage:当客户端发送消息给服务端的时候,会回调OnMessage 注解标记的方法
@OnClose:当客户端断开连接的时候,会回调@OnClose注解标记的方法。
Session:是代表当前客户端与服务端建立的一个会话,通过这个对象,服务端可以主动给客户端发送消息。
WebSocketServer这个类的主要作用是保存每个客户端与服务端建立的连接,一旦有客户端跟服务端建立连接、发送消息、断开连接,都会发送消息给其他客户端,从而实现群聊的功能。
文章转自公众号:三友的java日记