如何为 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? [关闭]