Google 了一圈,大部分只说了如何创建,并未提及如何启动。请问,这个 ws 服务如何启动?
代码如下:
@ServerEndpoint(value = "/chat-room-channel")
public class ChatRoomChannel {
Logger logger = LoggerFactory.getLogger(ChatRoomChannel.class);
public static final Set<Session> SESSIONS = Collections.synchronizedSet(new HashSet<Session>());
public static void notifyAll(String message) {
synchronized (SESSIONS) {
final Iterator<Session> i = SESSIONS.iterator();
while (i.hasNext()) {
final Session session = i.next();
if (session.isOpen()) {
session.getAsyncRemote().sendText(message);
}
}
}
}
@OnOpen
public void onConnect(final Session session){
SESSIONS.add(session);
HashMap<String, Object> msgMap = new HashMap<String, Object>();
msgMap.put(Commom.TYPE, Commom.ONLINE);
msgMap.put(Commom.MESSAGE, SESSIONS.size());
String messgae = new JSONObject(msgMap).toString();
logger.debug(messgae);
notifyAll(messgae);
}
}
相关分类