基于注解的 Java WebSocket 服务如何启动?
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);
}
}
回答:
请使用tomcat8。。。这个ws是javaee7标准的只要支持javaee7的服务器就可以了。
试了tomcat8是可以用注解的websocket的。。
你的代码依赖我这边没有没法测试
测试的javaee代码是 http://www.oschina.net/translate/java-ee-html5-websocket-example
用的eclipse+tomcat8
以上是 基于注解的 Java WebSocket 服务如何启动? 的全部内容, 来源链接: utcz.com/p/171233.html