赞
踩
开发中经常会有这样的使用场景.如某个用户在一个数据上做了xx操作, 与该数据相关的用户在线上的话,需要实时接收到一条信息.
这种可以使用WebSocket来实现. 另外,对于消息,可以定义一个类进行固化. 主要是消息内容,接收人,发送人,是否已发送等. 用户上线时, 通过方法去查询出来然后进行发送
-
- @ServerEndpoint(value = "/websocket/{sessionId}")
- public class MyWebSocket {
-
- //静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。
- private static AtomicInteger onlineCount = new AtomicInteger(0);
-
- //concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。若要实现服务端与单一客户端通信的话,可以使用Map来存放,其中Key可以为用户标识
- public static CopyOnWriteArraySet<MyWebSocket> webSocketSet = new CopyOnWriteArraySet<MyWebSocket>();
-
- //与某个客户端的连接会话,需要通过它来给客户端发送数据
- public Session session;
-
- /**
- * 连接建立成功调用的方法
- *
- * @param session 可选的参数。session为与某个客户端的连接会话,需要通过它来给客户端发送数据
- */
- @OnOpen
- public void onOpen(Session session) {
- this.session = session;
- if (webSocketSet.add(this)) {

赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。