2011-08-26 101 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

相关问题