| | |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | |
| | | @Slf4j |
| | | @ServerEndpoint("/gas/flux/{userId}") |
| | | @ServerEndpoint("/ws/gas/flux/{userId}") |
| | | @Component |
| | | public class GasFluxWebsocketServer { |
| | | |
| | |
| | | this.userId = userId; |
| | | |
| | | webSocketMap.put(userId, this); |
| | | log.info("webSocketMap -> " + JSON.toJSONString(webSocketMap)); |
| | | //log.info("webSocketMap -> " + JSON.toJSONString(webSocketMap)); |
| | | |
| | | addOnlineCount(); // 在线数 +1 |
| | | log.info("【气体通量实时推送】有新窗口开始监听:" + userId + ",当前在线人数为" + getOnlineCount()); |
| | | //log.info("【气体通量实时推送】有新窗口开始监听:" + userId + ",当前在线人数为" + getOnlineCount()); |
| | | |
| | | try { |
| | | sendMessage(JSON.toJSONString("【气体通量实时推送】连接成功")); |
| | |
| | | if (webSocketMap.get(this.userId) != null) { |
| | | webSocketMap.remove(this.userId); |
| | | subOnlineCount(); // 人数 -1 |
| | | log.info("【气体通量实时推送】有一连接关闭,当前在线人数为:" + getOnlineCount()); |
| | | //log.info("【气体通量实时推送】有一连接关闭,当前在线人数为:" + getOnlineCount()); |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | @OnMessage |
| | | public void onMessage(String message, Session session) { |
| | | log.info("收到来自窗口" + userId + "的信息:" + message); |
| | | //log.info("收到来自窗口" + userId + "的信息:" + message); |
| | | |
| | | if (StringUtils.isNotBlank(message)) { |
| | | try { |
| | |
| | | */ |
| | | @OnError |
| | | public void onError(Session session, Throwable error) { |
| | | log.error("用户错误:" + this.userId + ",原因:" + error.getMessage()); |
| | | error.printStackTrace(); |
| | | //log.error("用户错误:" + this.userId + ",原因:" + error.getMessage()); |
| | | //error.printStackTrace(); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | if (userId == null) { |
| | | webSocketMap.get(entry.getKey()).sendMessage(message); |
| | | log.info("【气体通量实时推送】发送消息到:" + entry.getKey() + ",消息:" + message); |
| | | //log.info("【气体通量实时推送】发送消息到:" + entry.getKey() + ",消息:" + message); |
| | | } else if (entry.getKey().equals(userId)) { |
| | | webSocketMap.get(entry.getKey()).sendMessage(message); |
| | | log.info("【气体通量实时推送】发送消息到:" + entry.getKey() + ",消息:" + message); |
| | | //log.info("【气体通量实时推送】发送消息到:" + entry.getKey() + ",消息:" + message); |
| | | } |
| | | |
| | | } |