如何在netty中处理不同的(url)websocket连接

如何在netty中处理不同的(url)websocket连接,websocket,netty,Websocket,Netty,netty中的Websocket示例(示例)有一个http请求处理程序,该处理程序: 进行握手(起初) (然后)处理不同类型的WebSocket框架,最终是“TextWebSocket框架” 在本例中,websocket连接只有一个url 问题是,当基于TextWebSocketFrame的实际websocket通信开始时,无法直接从TextWebSocketFrames本身确定websocket url(如果我错了,请纠正我) 那么,如何在netty中处理不同的(url)websocket连接

netty中的Websocket示例(示例)有一个http请求处理程序,该处理程序:

  • 进行握手(起初)

  • (然后)处理不同类型的WebSocket框架,最终是“TextWebSocket框架”

  • 在本例中,websocket连接只有一个url

    问题是,当基于
    TextWebSocketFrame
    的实际websocket通信开始时,无法直接从TextWebSocketFrames本身确定websocket url(如果我错了,请纠正我)

    那么,如何在netty中处理不同的(url)websocket连接呢

    一种解决方案是在握手过程中注册频道及其“websocket连接URL”

    另一种是只有一个websocket连接url,并通过向websocket消息(TextWebSocket框架)添加额外信息来解析不同的上下文


    我觉得这些解决方案并不优雅,所以有什么想法吗?

    据我所知,当您执行web套接字握手时,它是指向特定URL的。在web套接字标准中指定的。看见因此,TextWebSocketFrame中没有URL信息,因为假设框架将被发送到套接字绑定到的URL

    要处理不同的URL,您必须:

  • 为每个URL设置不同的管道并绑定到不同的IP和/或端口,或
  • 如您所述,定制握手并将URL与频道一起存储
  • 就我个人而言,我刚刚在TextWebSocketFrame中使用了JSON。在我的JSON中,我有一个字段,用于说明预期的操作。此字段用于路由到相应的消息处理程序

    我认为这归根结底是一个设计决定。WebSocket适用于长期存在的连接,其中请求消息可以有0、1或>1个响应。这与REST样式1请求和1响应模型形成了对比


    希望这能有所帮助。

    我的理解是,当您执行web套接字握手时,它是指向特定URL的。在web套接字标准中指定的。看见因此,TextWebSocketFrame中没有URL信息,因为假设框架将被发送到套接字绑定到的URL

    要处理不同的URL,您必须:

  • 为每个URL设置不同的管道并绑定到不同的IP和/或端口,或
  • 如您所述,定制握手并将URL与频道一起存储
  • 就我个人而言,我刚刚在TextWebSocketFrame中使用了JSON。在我的JSON中,我有一个字段,用于说明预期的操作。此字段用于路由到相应的消息处理程序

    我认为这归根结底是一个设计决定。WebSocket适用于长期存在的连接,其中请求消息可以有0、1或>1个响应。这与REST样式1请求和1响应模型形成了对比


    希望这能有所帮助。

    感谢您的回答和您在netty中的RFC 6455实现。我希望你们能尽快完成netty 3.3和4.0。没问题。完成了web套接字的It编码和(高速公路)测试。正在等待发布。感谢您的回答和您在netty中的RFC 6455实现。我希望你们能尽快完成netty 3.3和4.0。没问题。完成了web套接字的It编码和(高速公路)测试。只是在等待发布。我用这种方式处理不同的请求URL。我使用这种方式来处理不同的请求URL。