我試圖接近尾聲包從我的服務器發送到我的客戶人爲,什麼原始值應該我送這樣的客戶會明白,我關閉連接?它不同於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似乎是合適的。請顯示你的嘗試和什麼不適合你。 –