簡體   English   中英

使用WebSocket連接到標准套接字

[英]Connect to standard socket using WebSocket

我有一個通過標准TCP套接字進行通信的硬件設備的客戶端接口。 是否可以在Chrome瀏覽器中使用WebSocket連接到此? 這是我用來連接的代碼:

var ws = new WebSocket("ws://127.0.0.1:13854");
ws.onopen = function() ...

到目前為止,客戶端在第一行失敗了。 問題是WebSockets使用自己的標准本地套接字不熟悉的協議嗎? 我已經嘗試指定其他協議('http:// ...'和'tcp:// ...'),但這沒有用。

正如已經解釋的那樣,WebSockets不會像你提供的那樣傳輸數據,而是為數據流添加成幀和屏蔽。 因此,不可能使用websockets與不實現WebSocket協議的應用程序通信。

但是有一種解決方法: Websockify服務器可以用作代理,以橋接websocket客戶端和非websocket服務器。 客戶端不直接與應用程序通信,而是使用websockify服務器。 Websockify解壓縮Websocket數據流並將其中繼到服務器。 然后將來自服務器的響應打包到WebSocket幀中並發送到客戶端。

Web套接字使用特殊協議。 例如,任何websocket連接都作為HTTP連接啟動,並在雙方同意通過HTTP更改為websocket協議后更改為websocket連接。 抱歉,您無法使用websockets與任意TCP服務器通信。 如果你想做類似的事情,你可能不得不使用flash或Java applet。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM