如何为 Netty io 配置子协议?

Posted

技术标签:

【中文标题】如何为 Netty io 配置子协议?【英文标题】:How can I configure subprotocol for Netty io? 【发布时间】:2016-03-09 08:56:27 【问题描述】:

我正在使用带有 Play 框架的 websockets。 当我尝试为 HTTP 标头 Sec-WebSocket-Protocol 设置值时,例如“ocpp1.6”然后我得到以下异常:

[error] p.nettyException - Exception caught in Netty
org.jboss.netty.handler.codec.http.websocketx.WebSocketHandshakeException: Requested subprotocol(s) not supported: ocpp1.6

我可以看到错误是因为org.jboss.netty.handler.codec.http.websocketx.WebSocketServerHandshakerFactory中构造函数的“subprotocols”参数为null。

因此,我该如何更改此值?这是导致错误的唯一原因吗?

谢谢, -路易丝

【问题讨论】:

你是如何创建你的管道的? 我正在使用 Play 框架,因此我获得了开箱即用的通信。我刚刚发现将 subprotocol 参数设置为 null 的是 play.core.server.websocket.WebSocketHandshake 类。如何覆盖/解决此 Play 行为? 【参考方案1】:

Play框架不支持子协议似乎是一个已知bug,应该在2.2.1版本中修复:

https://github.com/playframework/playframework/pull/1722

【讨论】:

以上是关于如何为 Netty io 配置子协议?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 WebSocket 协议配置 AWS ELB 和 Nginx? [关闭]

如何为动态聊天室配置 Autobahn(crossbar.io)?

如何为生产和开发环境 iOS 设置不同的证书和配置文件?

如何为 Riak 配置连接池

如何为类型配置自动缩放:对象

如何为不同的 API 链接配置 Flutter Flavor