增加websocket日志
This commit is contained in:
parent
96c3db96ec
commit
aed7687a91
|
|
@ -34,14 +34,16 @@ public class SdWebsocket {
|
|||
SdWebsocket.sysUserAPI = sysUserAPI;
|
||||
}
|
||||
|
||||
/**线程安全Map*/
|
||||
/**
|
||||
* 线程安全Map
|
||||
*/
|
||||
private static ConcurrentHashMap<String, Session> sessionPool = new ConcurrentHashMap<>();
|
||||
|
||||
@OnOpen
|
||||
public void onOpen(Session session, @PathParam(value = "userId") String userId) {
|
||||
try {
|
||||
sessionPool.put(userId, session);
|
||||
log.info("【系统 SdWebsocket】有新的连接,总数为:"+sessionPool.size());
|
||||
log.info("【系统 SdWebsocket】有新的连接,总数为:" + sessionPool.size());
|
||||
|
||||
broadcastUserList();
|
||||
} catch (Exception e) {
|
||||
|
|
@ -52,7 +54,7 @@ public class SdWebsocket {
|
|||
public void onClose(@PathParam("userId") String userId) {
|
||||
try {
|
||||
sessionPool.remove(userId);
|
||||
log.info("【系统 SdWebsocket】连接断开,总数为:"+sessionPool.size());
|
||||
log.info("【系统 SdWebsocket】连接断开,总数为:" + sessionPool.size());
|
||||
|
||||
broadcastUserList();
|
||||
} catch (Exception e) {
|
||||
|
|
@ -65,16 +67,16 @@ public class SdWebsocket {
|
|||
*/
|
||||
@OnMessage
|
||||
public void onMessage(String message, @PathParam(value = "userId") String userId) {
|
||||
if(!"ping".equals(message) && !WebsocketConst.CMD_CHECK.equals(message)){
|
||||
log.info("【系统 SdWebsocket】收到客户端消息:"+message);
|
||||
}else{
|
||||
log.info("【系统 SdWebsocket】收到客户端消息:"+message);
|
||||
if (!"ping".equals(message) && !WebsocketConst.CMD_CHECK.equals(message)) {
|
||||
log.info("【系统 SdWebsocket】收到客户端消息:" + message);
|
||||
} else {
|
||||
log.info("【系统 SdWebsocket】收到客户端消息:" + message);
|
||||
JSONObject json;
|
||||
try {
|
||||
json = JSON.parseObject(message);
|
||||
this.sendMessage(userId, "ping");
|
||||
} catch (Exception e) {
|
||||
log.warn("【SdWebsocket】收到不合法的消息:"+message);
|
||||
log.warn("【SdWebsocket】收到不合法的消息:" + message);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -98,7 +100,7 @@ public class SdWebsocket {
|
|||
* @param message
|
||||
*/
|
||||
public void sendMessage(String message) {
|
||||
log.info("【系统 SdWebsocket】广播消息:"+message);
|
||||
log.info("【系统 SdWebsocket】广播消息:" + message);
|
||||
for (Session session : sessionPool.values()) {
|
||||
session.getAsyncRemote().sendText(message);
|
||||
}
|
||||
|
|
@ -125,6 +127,19 @@ public class SdWebsocket {
|
|||
log.info("【系统 SdWebsocket】当前在线用户: [{}] 共 {} 人", userList.toString(), sessionPool.size());
|
||||
|
||||
Session session = sessionPool.get(userId);
|
||||
|
||||
if (session != null) {
|
||||
log.info("【系统 SdWebsocket】获取到用户 {} 的 session: id={}, isOpen={}, maxIdleTimeout={}ms,requestURI={}, queryString={}",
|
||||
userId,
|
||||
session.getId(),
|
||||
session.isOpen(),
|
||||
session.getMaxIdleTimeout(),
|
||||
session.getRequestURI(),
|
||||
session.getQueryString());
|
||||
} else {
|
||||
log.info("【系统 SdWebsocket】未找到用户 {} 的 session,sessionPool 中不存在该用户", userId);
|
||||
}
|
||||
|
||||
if (session != null && session.isOpen()) {
|
||||
session.getAsyncRemote().sendText(message);
|
||||
log.debug("【系统 SdWebsocket】消息发送成功");
|
||||
|
|
@ -150,7 +165,7 @@ public class SdWebsocket {
|
|||
// 构建消息:type固定为userList,users是当前所有用户ID
|
||||
JSONObject msg = new JSONObject();
|
||||
msg.put("type", "userList");
|
||||
msg.put("users",sysUserAPI.queryByEmployees(String.join(",", sessionPool.keySet())));
|
||||
msg.put("users", sysUserAPI.queryByEmployees(String.join(",", sessionPool.keySet())));
|
||||
msg.put("timestamp", System.currentTimeMillis());
|
||||
|
||||
sendMessage(msg.toJSONString());
|
||||
|
|
|
|||
Loading…
Reference in New Issue