【问题标题】:Netty Websocket SSL client not working after a successful handshake成功握手后 Netty Websocket SSL 客户端不工作
【发布时间】:2013-06-12 11:00:59
【问题描述】:

我想使用 Netty 框架创建一个安全的 websocket 客户端-服务器通信。我查看了 netty 示例,其中有一个 websocket ssl 服务器示例:https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example/http/websocketx/sslserver

还有另一个使用 websocket 客户端的示例,但没有 ssl:https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example/http/websocketx/client

所以我将 SslHandler 作为 ChannelPipelinehandle 中的第一个处理程序,如下所示:How can use netty websocket client with wss?

但它仍然不起作用。客户端成功连接到服务器(握手成功),但是当客户端向服务器发送消息(例如 PingWebSocketFrame 或任何其他 WebSocketFrame)时,什么也没有发生。服务器没有收到任何消息。

你知道可能出了什么问题吗?

编辑:我使用 4.0.0.CR5,确切地说,服务器总是收到一些东西,但只有第一个 SSLHandler。管道中的下一个处理程序 (HttpRequestDecoder) 仅有时会收到一条消息,当它收到时,它会创建 DefaultHttpRequest 并出现此错误:

decodeResult: failure(java.lang.IllegalArgumentException: 无效版本格式:|￳LZSᄎ

那些奇怪的字符应该代表一个 HTTP 版本,但看起来 SSLHandler 没有正确解码它们?

【问题讨论】:

    标签: ssl websocket netty


    【解决方案1】:

    我遇到了同样的问题(您可以查看 stackoverflow 帖子 here)。

    客户端上的示例代码使用了channel.write()方法,似乎没有将消息转发到Websocket ssl服务器。通过使用 channel.writeAndFlush() 代替,消息被正确地发送到服务器。

    所有这些都是使用netty 4.0.9.Final版本测试的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 2016-05-04
      • 2014-11-13
      相关资源
      最近更新 更多