我试图接近尾声包从我的服务器发送到我的客户人为,什么原始值应该我送这样的客户会明白,我关闭连接?它不同于websocket协议?的WebSocket关闭分组
回答
在最简单的级别 - 只需关闭连接 - 这将工作正常。
的非常早期hixie-76具有用于信令闭合一个简单的序列:只发送两个字节0xFF时,0×00(第一个是帧类型,第二个是长度)。
在所有以后的规格,帧是更复杂一点;它们被分解为:
- (1个字节)的标志和操作码
- (字节变量数)屏蔽标志和有效载荷长度
- (可选,4个字节)掩模
- ({长度}字节)有效载荷
对于第一部分,我们想要的操作码是0x08,并且这必须与“fin”标志,0x80(这只是表示该帧没有被拆分成多个消息)组合 - 所以0x88。对于第二部分,我们可以使用零长度消息,但是我们需要知道我们是客户端到服务器(总是被屏蔽的,所以我们需要使用0x80)或者服务器到客户端(从来不会蒙面,所以我们需要使用0x00)。
第三部分是如果掩模标记被设置,所以客户机到服务器仅包括在内;由于我们没有发送有效载荷,所以发明加密安全掩码没有意义 - 我们可以使用0x00 0x00 0x00 0x00。
第四,因为我们说明零长度被省略。
所以:客户端到服务器:均为0x88 0x80的0×00 0×00 0×00 0×00
和服务器到客户端:均为0x88为0x00
我确实有访问原始协议层,我目前使用'process.context.Send(new字节[4] {80,01,00,00},真实,TRUE);',它似乎不同之处在于,收到'WebSocket连接到发挥最佳 'WS://本地主机:8000 /' 失败:压缩位必须如果没有协商的deflate-frame扩展错误,则为0。 – user2498443
@user我同意它;你从哪里得到价值80?这是rsv1和rsv3集,操作码为零。你需要发送操作码8的fin位设置 - 小数136? (完成在我的脑海 - 我没有检查过这个值) –
对不起,协议不同吗?我没有访问连接,我在C#中使用Alchemy,并且愚蠢地他们没有终止连接的方法。感谢所有帮助的人! :) – user2498443
- 1. 关闭WebSocket Threadsafe
- 2. WebSocket关闭发送
- 3. Tornado WebSocket每分钟关闭一次
- 4. 关闭旧的php websocket
- 5. Node.JS回调关闭websocket
- 6. 正确关闭WebSocket(HTML5,Javascript)
- 7. Websocket连接自动关闭?
- 8. 播放WebSocket连接关闭
- 9. Tomcat clientendpoint websocket保持关闭
- 10. 关闭websocket连接错误
- 11. WebSocket连接正在关闭
- 12. websocket连接不关闭
- 13. Netty websocket优雅地关闭
- 14. 打开或关闭分组
- 15. 已关闭或已关闭模式下的安全websocket
- 16. 的WebSocket关闭错误处理
- 17. C# - SignalR - 错误而关闭的WebSocket
- 18. 无法关闭的WebSocket用JavaScript
- 19. 龙卷风的WebSocket关闭意外
- 20. 关闭与Java的websocket连接
- 21. 关闭Chrome应用程序窗口关闭Websocket
- 22. 如何从服务器关闭websocket?
- 23. 检查websocket服务器是否关闭
- 24. JavaScript WebSocket直接关闭连接
- 25. WebSocket在连接建立之前关闭
- 26. 如何关闭所有websocket连接
- 27. WebSocket服务器:总是关闭吗?
- 28. PlayFramework 2.2 scala关闭WebSocket连接
- 29. SignalR:出现错误:WebSocket已关闭
- 30. 如何正确关闭socket.io/websocket-client?
客户端=? – dtb
这是因为http://stackoverflow.com/questions/17175016/alchemy-forcefully-disconnect-client – Amy
http://msdn.microsoft.com/en-us/library/system.net.websockets.websocket同样的问题.closeasync.aspx似乎是合适的。请显示你的尝试和什么不适合你。 –