首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用安全连接时出现的Jetty 9 WebSocket客户端问题

使用安全连接时出现的Jetty 9 WebSocket客户端问题
EN

Stack Overflow用户
提问于 2019-05-10 00:21:36
回答 1查看 1.6K关注 0票数 1

我正在使用Jetty9.4.18库在java应用程序中编写一个WebSocket客户机。

我是WebSockets的新手,所以我开始使用Jetty文档中的两个示例类连接到echo.websocket.org进行测试

当我不使用SSL进行连接时,测试运行得很好,但是当连接到wss://echo.websocket.org时,测试就失败了。

我总是得到相同的异常:

代码语言:javascript
复制
java.io.EOFException: HttpConnectionOverHTTP@50371e9d::DecryptedEndPoint@6dc65fc2{echo.websocket.org/174.129.224.73:443<->/192.168.1.34:60521,OPEN,fill=-,flush=C,to=226/0}
    at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.earlyEOF(HttpReceiverOverHTTP.java:338)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1551)
    at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.shutdown(HttpReceiverOverHTTP.java:209)
    at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:147)
    at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:73)
    at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:133)
    at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:155)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:411)
    at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:305)
    at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:159)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:748)

看起来服务器在没有响应握手请求的情况下关闭。

我知道SslContextFactory,但我的理解是,只有当您需要自己的TrustStore或KeyStore或其他特殊情况时才应该使用它。

还要注意的是,在一些失败的尝试之后,我从https://github.com/TooTallNate/Java-WebSocket下载了另一个websocket实现,它在ws和wss上都工作得很好,没有为SSL设置任何特定的东西。然而,对于这个项目,我必须使用Jetty。

我使用的代码与https://www.eclipse.org/jetty/documentation/9.4.x/jetty-websocket-client-api.html的Jetty文档中的示例完全相同

我所做的唯一更改是向SimpleEchoSocket添加了一个onError方法,它转储了整个异常堆栈。

我是不是遗漏了什么?

提前感谢!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56063746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档