代号为一个WebSocket + Spring Boot



关于代号One Websocket cn1lib,我看到了你关于Whatsapp克隆的课程,但是你提出的代码是一个完整的应用程序。 您能否提供一个更简单的自封闭示例,使用Websocket cn1lib与客户端代码(代号一代码发送和接收消息(和服务器端代码(Spring Boot Java 8接收和发送消息(?

我对一个简单的 Spring Boot 示例特别感兴趣,它与代号一交互,作为更好地理解和学习 websocket 的起点。

谢谢

它在服务器上看起来大致是这样的:

public class WebSocketServer extends TextWebSocketHandler {
private static final Object LOCK = new Object();
private Map<String, WebSocketSession> sessions = new HashMap<>();
@Override
protected void handleTextMessage(WebSocketSession session,
TextMessage message) throws Exception {
Gson gson = new Gson();
MyDTO parsed = gson.fromJson(message.getPayload(), MyDTO.class);
// ... do stuff with incoming message
synchronized(LOCK) {
if(!sessions.contains(parsed.getId()) { 
sessions.put(parsed.getId(), session);
}
}
}
public boolean sendMessage(String destId, String json) {
Session s = null;
synchronized(LOCK) {
s = sessions.get(destId);
}
if (s != null && s.isOpen()) {
try {
s.sendMessage(new TextMessage(s));
return true;
} catch (IOException e) {
synchronized(LOCK) {
sessions.remove(destId);
}
}
}
return false;
}
}

最新更新