|
@@ -42,6 +42,7 @@ public class WsConnectionChat {
|
|
|
loginEvent(userId, true);
|
|
loginEvent(userId, true);
|
|
|
sessionMap.put(session.getId(), userId);
|
|
sessionMap.put(session.getId(), userId);
|
|
|
userMap.put(userId, session);
|
|
userMap.put(userId, session);
|
|
|
|
|
+ log.info("{} 在线", userId);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -52,6 +53,7 @@ public class WsConnectionChat {
|
|
|
loginEvent(userId, false);
|
|
loginEvent(userId, false);
|
|
|
sessionMap.remove(sessionId);
|
|
sessionMap.remove(sessionId);
|
|
|
userMap.remove(userId);
|
|
userMap.remove(userId);
|
|
|
|
|
+ log.info("{} 离线", userId);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -91,7 +93,22 @@ public class WsConnectionChat {
|
|
|
data.get("receiverId").getAsLong();
|
|
data.get("receiverId").getAsLong();
|
|
|
break;
|
|
break;
|
|
|
case event_talk:
|
|
case event_talk:
|
|
|
- log.info("talk event");
|
|
|
|
|
|
|
+ JsonObject data1 = jsonObject.get("data").getAsJsonObject();
|
|
|
|
|
+ long senderId = data1.get("senderId").getAsLong();
|
|
|
|
|
+ long receiverId = data1.get("receiverId").getAsLong();
|
|
|
|
|
+ String content = data1.get("content").getAsString();
|
|
|
|
|
+ log.info("send {} -> {}", receiverId, content);
|
|
|
|
|
+
|
|
|
|
|
+ WebSocketSession webSocketSession = userMap.get(receiverId);
|
|
|
|
|
+ if (webSocketSession != null) {
|
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
|
+ map.put("senderId", senderId);
|
|
|
|
|
+ map.put("receiverId", receiverId);
|
|
|
|
|
+ map.put("payload", content);
|
|
|
|
|
+ sendMessage(webSocketSession, map);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ log.error("not found {} session", receiverId);
|
|
|
|
|
+ }
|
|
|
break;
|
|
break;
|
|
|
case event_talk_revoke:
|
|
case event_talk_revoke:
|
|
|
log.info("talk_revoke event");
|
|
log.info("talk_revoke event");
|
|
@@ -111,10 +128,9 @@ public class WsConnectionChat {
|
|
|
session.sendMessage(textMessage);
|
|
session.sendMessage(textMessage);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public void sendMessage(long userId, Object payload) {
|
|
|
|
|
|
|
+ public void sendTextMessage(long userId, String text) {
|
|
|
WebSocketSession session = userMap.get(userId);
|
|
WebSocketSession session = userMap.get(userId);
|
|
|
if (session != null) {
|
|
if (session != null) {
|
|
|
- String text = (String) payload;
|
|
|
|
|
TextMessage textMessage = new TextMessage(text);
|
|
TextMessage textMessage = new TextMessage(text);
|
|
|
try {
|
|
try {
|
|
|
session.sendMessage(textMessage);
|
|
session.sendMessage(textMessage);
|