首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >,关闭会话OpCode 12

,关闭会话OpCode 12
EN

Stack Overflow用户
提问于 2017-05-08 15:24:28
回答 2查看 1.3K关注 0票数 0

我一直在使用Jetty和Java开发一个聊天客户端服务器。但是,我目前在调试代码时遇到了一个奇怪的错误(我不会发布我的代码,因为它是一个更大、更复杂的项目的一部分,除了我之外,我不希望任何人阅读所有这些错误),但是我想知道你们中是否有人遇到了类似的错误,或者知道如何理解它?

每当我试图连接我的客户端时,一旦握手的第一个HTTP请求到达服务器,并且应该继续升级,我就会得到这个错误和握手的结束而不进行任何升级。

从客户端获取的错误消息:

代码语言:javascript
复制
 Session Opened:WebSocketSession[websocket=JettyAnnotatedEventDriver[amos.client.unpublic.test.yoko.websocket.AnnotatedSocket@4e33a461],behavior=CLIENT,connection=WebSocketClientConnection@68161ae2{FILLING}{f=Flusher[queueSize=0,aggregateSize=0,failure=null],g=Generator[CLIENT,validating],p=Parser@1c415223[ExtensionStack,s=START,c=0,len=0,f=null,p=WebSocketPolicy@44588a43[behavior=CLIENT,maxTextMessageSize=10000000,maxTextMessageBufferSize=10000000,maxBinaryMessageSize=10000000,maxBinaryMessageBufferSize=10000000,asyncWriteTimeout=60000,idleTimeout=300000,inputBufferSize=4096]]},remote=WebSocketRemoteEndpoint@3f32a8b7[batching=true],incoming=JettyAnnotatedEventDriver[amos.client.unpublic.test.yoko.websocket.AnnotatedSocket@4e33a461],outgoing=ExtensionStack[queueSize=0,extensions=[],incoming=org.eclipse.jetty.websocket.common.WebSocketSession,outgoing=org.eclipse.jetty.websocket.client.io.WebSocketClientConnection]]
 2017-05-08T16:53:08.668    DEBUG   WebSocketClient@12654428-52 Parsing extra remaining buffer from UpgradeConnection
 2017-05-08T16:53:08.668    DEBUG   WebSocketClient@12654428-46-selector-WebSocketClientSelectorManager@5e31283d/0  Key interests updated 1 -> 0
 2017-05-08T16:53:08.668    DEBUG   WebSocketClient@12654428-46-selector-WebSocketClientSelectorManager@5e31283d/0  Local interests updated 1 -> 0 for SelectChannelEndPoint@6fbfc570{localhost/127.0.0.1:5080<->55844,Open,in,out,-,-,300000,WebSocketClientConnection}{io=0,kio=0,kro=1}
 2017-05-08T16:53:08.668    DEBUG   WebSocketClient@12654428-46-selector-WebSocketClientSelectorManager@5e31283d/0  Running change org.eclipse.jetty.io.SelectChannelEndPoint$1@2810e813
 2017-05-08T16:53:08.668    DEBUG   WebSocketClient@12654428-46-selector-WebSocketClientSelectorManager@5e31283d/0  FILL_INTERESTED-->FILLING WebSocketClientConnection@68161ae2{FILLING}{f=Flusher[queueSize=0,aggregateSize=0,failure=null],g=Generator[CLIENT,validating],p=Parser@1c415223[ExtensionStack,s=START,c=0,len=0,f=null,p=WebSocketPolicy@44588a43[behavior=CLIENT,maxTextMessageSize=10000000,maxTextMessageBufferSize=10000000,maxBinaryMessageSize=10000000,maxBinaryMessageBufferSize=10000000,asyncWriteTimeout=60000,idleTimeout=300000,inputBufferSize=4096]]}
 2017-05-08T16:53:08.668    DEBUG   WebSocketClient@12654428-52 terminateConnection(1,002,Unknown opcode: 12)

我从RFC 6455上查到了OpCode:

代码语言:javascript
复制
|Opcode  | Meaning                               | Reference |
-+--------+-------------------------------------+-----------|
 | 0      | Continuation Frame                  | RFC 6455  |
-+--------+-------------------------------------+-----------|
 | 1      | Text Frame                          | RFC 6455  |
-+--------+-------------------------------------+-----------|
 | 2      | Binary Frame                        | RFC 6455  |
-+--------+-------------------------------------+-----------|
 | 8      | Connection Close Frame              | RFC 6455  |
-+--------+-------------------------------------+-----------|
 | 9      | Ping Frame                          | RFC 6455  |
-+--------+-------------------------------------+-----------|
 | 10     | Pong Frame                          | RFC 6455  |
-+--------+-------------------------------------+-----------|

但在我的调试中,我不明白OpCode :12的含义。

我认为这与缓冲区中还存在一些数据,并且代码没有正确地接收/解析有关,这仅仅是一个不适当的分段的ping/pong框架吗?它是否来自于我有许多servlet,这会导致会话处理中的冲突?

编辑:我在两边使用(服务器和客户端),我使用的是9.1.5版本。

如果有任何提示或帮助我将不胜感激!非常感谢,一个好奇的程序员学徒。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-14 08:01:11

很抱歉出现了延迟,因为在我的处理程序集合中,我有两个处理程序负责响应请求,这导致了这个不正确的分段回答。在分配了正确的路径和一个处理程序之后,它工作了,没有任何问题。

票数 1
EN

Stack Overflow用户

发布于 2017-05-08 16:20:18

当WebSocketClient接收到网络数据时,它继续解析WebSocket帧(RFC6455)。

当它进行操作码解析时,它发现代码为12,这是无效的(每个规范),因此它终止了连接。

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

https://stackoverflow.com/questions/43851490

复制
相关文章

相似问题

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