JAVA EE 7 WebSocket implementation



在nodejs socket中。IO使用单个套接字连接所有模块,这适用于Java websocket实现吗?

例如

我应该创建多个serverendpoint

@ServerEndpoint("/ws1")
public class Socket1 {}
@ServerEndpoint("/ws2")
public class Socket2 {}
@ServerEndpoint("/ws3")
public class Socket3 {}

将使用一个套接字连接来处理所有这些?

还是应该使用单个ServerEndpoint并根据我的消息类型(如 )执行操作?
    @ServerEndpoint(value = "/ws",
                    encoders = CommandEncoder.class,
                    decoders = CommandDecoder.class)
        public class Socket {
           @OnMessage
           public void onMessage(Command message, Session session){
                switch(message.type){
                   case SomeAction:dosomething(message,session);break;
                   case AnotherAction:doAnotherThing(message,session);break; 
                }
           }
    }

我只能从纯粹个人的角度说,您建议的处理传入消息的两种方法都是合法的。

但是除了这些之外(即使这可能不满足您的需求),您可以使用URI路径模板来指定嵌入在URI中的变量。在这里,您将只有一个ServerEndpoint,然后检索路径变量并检查它,以便根据替换的参数拾取您想要流的服务。

@ServerEndpoint(value = "/ws/{wsQualifier}",
                encoders = CommandEncoder.class,
                decoders = CommandDecoder.class) {
  @OnMessage
  public void onMessage(Command message,
                          Session session,
                          @PathParam("wsQualifier") int ws) {
    switch(ws) {
      case 1:dosomething(message,session);break;
      case 2:doAnotherThing(message,session);break; 
    }
  }
}

相关内容

  • 没有找到相关文章

最新更新