首页 > 基于注解的 Java WebSocket 服务如何启动?

基于注解的 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

【热门文章】
【热门文章】