2011-08-26 128 views
2

使用WebSocket的服務器我無法設置安全WebSocket連接和Node.js的如何使用WebSocket的服務器設置安全WebSocket連接和Node.js的

服務器端

var options = { 
    key: fs.readFileSync(PRIVATE_KEY), 
    cert: fs.readFileSync(CERTIFICATE) 
}; 

// create web server 
var server = ws.createServer(options); 
server.listen(8000); 
... 

客戶端側

<script language="javascript" type="text/javascript"> 
    var wsUri = "wss://url:8000"; 


    function init() {    
     websocket = new WebSocket(wsUri); 
    } 

    ... 

    window.addEventListener("load", init, false); 
</script> 

但它爲WS

var wsUri = "ws://url:8000"; 

任何想法?

+0

您正在使用哪種瀏覽器?不同的瀏覽器支持不同版本的WebSocket規範,只有Chrome 14和Firefox 7支持WS規範的最新草案8。另外你如何處理'握手'與WebSocket建立連接? –

+0

我正在使用谷歌瀏覽器(第15版) 握手時使用自簽名證書。 我試過普通的https服務器內置的nodejs,它對這個證書正常工作,我的意思是https:// url:port。但websocket-server包中的websocket實現有些問題。 –

+0

我的意思是你用什麼node.js包來處理WebSockets?或者你正在推出自己的解決方案?你有沒有試過Worlize/WebSocket-Node https://github.com/Worlize/WebSocket-Node?編輯:只是注意到你提到了一個叫'websocket-server'的東西,這是一個node.js的包嗎?你能提供一個鏈接嗎? –

回答

3

自述爲websocket-server

這是WebSocket協議的服務器。它目前使用協議規範的draft75和draft76工作 。

Chrome v15不再使用draft75/draft76。它使用WebSocket規範的最新版本8,與舊版草案不兼容(握手機制和發送數據的方式都已更改)。這可能是你的問題。

嘗試使用支持較新的WebSocket規範的node.js包,我推薦Worlize/WebSocket-Node或者您可以試試socket.io

相關問題