2015-07-02 69 views
1

我的目標是在具有特定協議的JavaScript中實現websocket客戶端。NodeJS &&瀏覽器交叉兼容websocket客戶端

此客戶端應該是平臺獨立的。它應該能夠從NodeJS環境和瀏覽器運行。我知道一個選擇是在NodeJS包上使用browserify,而不是在瀏覽器中使用結果,但是我想知道是否還有其他更優雅的solution?

另外在github回購ws NodeJS軟件包,這是最流行的,我認爲是說它返回global.WebSocket有略微不同的API。 我還可以將它用於平臺無關的客戶端應用程序嗎?

感謝您的回覆。

+0

你有沒有得到任何好的解決方案呢? – zixia

+0

這個項目已有幾年了,但我記得我用browserify捆綁了應用程序,並且我必須編寫一個使用基於平臺的不同API的小包裝器。 – JeFf

+0

你能分享一些你的代碼嗎?因爲我再次面對這個問題,而且看起來還沒有簡單而好的解決方案(非常奇怪)。 – zixia

回答

0

最後,我使用了與瀏覽器WebSocket協議API兼容的NodeJS包https://websockets.github.io/ws/

var WebSock = global.WebSocket || global.MozWebSocket || require('ws'); 

this.sock = new WebSock(url, this.subProtocol); 
this.sock.onopen = (evt) => {}; 
this.sock.onmessage = (msg) => {}; 
this.sock.onerror = (err) => {}; 
0

根據您的具體要求,我發現Socket.io很好地爲雙方的NodeJS(使用socket.io-client和瀏覽器。它做更多的則只是WebSockets的,但這樣做肯定,並考慮更因爲它可能不適合您的特定目的。

我使用它的任務隊列,並已滿意。