ChatMessageHandler.java
package com.alibaba.fastjson2.example.springtest.config;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* Created by jackiechan on 2018/2/5/������4:11
* ������������������������
*/
public class ChatMessageHandler
extends TextWebSocketHandler {
//���������������������������������������������������
private static final Map<String, WebSocketSession> allClients;
static {
//���������������
allClients = new ConcurrentHashMap();
}
/**
* ���������������������������������������������������������,������������������������������������
*/
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
}
/**
* ���������������������������
*
* @param userName
* @param message
*/
public void sendMessageToUser(String userName, TextMessage message) {
//���������������������������������������������
WebSocketSession webSocketSession = allClients.get(userName);
//������������������,������������,������������������������������������,���������������������������������
if (webSocketSession != null && webSocketSession.isOpen()) {
try {
//������������
webSocketSession.sendMessage(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* ���������������������������������,������������������������������
*
* @param message
*/
public void sendMessageToUsers(TextMessage message) {
//���������������������
for (Map.Entry<String, WebSocketSession> webSocketSessionEntry : allClients.entrySet()) {
//������������������
WebSocketSession session = webSocketSessionEntry.getValue();
if (session != null && session.isOpen()) {
try {
session.sendMessage(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
@Override
public boolean supportsPartialMessages() {
return false;
}
}