我正在實現一個Jetty Websocket servlet。 當服務器收到一個新連接時,我想發送一個消息,這個消息將被websocket的onopen函數讀取。我希望此消息僅在打開時發送,而不是使用常規的connection.SendMessage()函數。有可能這樣做嗎?如何?是否有可能在打開websocket連接時發送數據
21
A
回答
15
在協議中沒有這方面的支持,但你可以自己捏造一些東西。
- 當您的服務器完成握手時,存儲要傳遞給客戶端的初始消息。
- 在客戶端的
onopen
函數中,發送「讀取初始消息」請求。 - 在您的服務器中,檢查該客戶端是否未讀取其初始消息;迴應消息;設置一個標誌,說明最初的消息已經發送。
- 您的客戶端和服務器現在都可以自由發送其他消息。
34
不要忘記查詢字符串。它在WebSocket url中有效。
new Websocket('ws://yoursite.com/path?a=1&b=2&c=3')
然後,您可以輕鬆地解析服務器端的這個網址來檢索數據。
+0
亞,但你如何解析服務器端的網址?網址本身在哪裏可用? –
+0
應該也許應該提到一個@PathParam的選項...參見[這個答案](https://stackoverflow.com/questions/21559260/how-do-i-pass-a-parameter-to-the-onopen-方法與 - jee7-的WebSockets) –
相關問題
- 1. 檢查連接到websocket是否仍然打開Net :: Async :: WebSocket
- 2. 客戶端連接並接收websocket數據但不能發送
- 3. 是否有可能在Silverlight中創建WebSocket連接?
- 4. Websocket不會打開連接
- 5. 打開websocket連接firefox addon
- 6. 是否有可能從websocket連接訪問HTTP請求?
- 7. 是否可以通過WebSocket握手發送自定義數據?
- 8. 是否有可能將套接字打開無限時間
- 9. Android Lollipop中有可能打開/關閉數據連接?
- 10. 是否可以在打開連接之前檢查到SQL數據庫的連接是否存在?
- 11. 啓用數據連接不能打開
- 12. Spring Websocket服務器在發送大量數據時重置連接
- 13. 是否有可能將clubbed數據發送到谷歌分析?
- 14. 在OleDb連接打開時發生SEHException
- 15. 是否有可能使用python連接MySQL數據庫
- 16. 是否有可能通過PHP將.htaccess連接到數據庫
- 17. Websocket連接在Shotgun服務器上未打開時關閉
- 18. .Net WebSocket Prototype ...在Javascript中打開連接時遇到問題
- 19. Websocket能否從ajax接收數據?
- 20. 防止在網絡連接不可用時發送UDP數據
- 21. WebSocket可以連接到本地服務器,但不能發送或接收
- 22. 是否有可能知道一個串口在linux中是否連接/斷開?
- 23. Node.js中的Websocket連接在發送時關閉
- 24. SqlCommand.ExecuteReader是否會自動打開數據庫連接?
- 25. 檢查SQLite數據庫連接是否仍然打開
- 26. 保持數據庫連接打開是否昂貴?
- 27. Arduino HC-05發送數據時藍牙模塊斷開連接
- 28. 在jQuery AJAX文章中,是否有可能不發送數據有效載荷?
- 29. 是否有可能在爲iOS開發時訪問pdf大綱
- 30. 是否有可能使NuGet.exe運行與Visual Studio斷開連接?
謝謝,我想知道如果我在網上搜索時可能錯過了一些東西。我會按照你所建議的方法。 – DPD