使用Node.js在Azure托pipe上创buildWeb套接字服务器?

我有一个节点应用程序,我试图在Azure上托pipe,创build一个websocket服务器。 我正在尝试使用下面的代码创buildWeb套接字服务器:

var socket = require('websocket').server; ... server.listen(1111,function(){ console.log('Http server is listening on port 1111'); }); 

当我在本地机器上执行此操作时,它工作正常,但是一旦Azure上出现以下客户端JavaScript行:

 var connection = new WebSocket('ws:' + document.domain + ':1111'); connection.send(msg); //throws error 

抛出错误:

InvalidStateError:尝试使用不是或不再可用的对象

如果我使用azure色,我可以获得所需的function吗? 如果是这样,有什么build议从哪里开始寻找修复?

你可以在这里看到破坏的应用程序。

它将在Azure上工作,但您需要进行更改。 尝试这个:

 server.listen(process.env.port, function () { var addr = app.address(); console.log('Server listening on http://' + addr.address + ':' + addr.port); }); 

以下是使用Azure中Socket.IO源代码的聊天示例的教程:

http://www.windowsazure.com/en-us/develop/nodejs/tutorials/app-using-socketio/

它假定你在Windows上,这不是必须的。 要从Mac或Linux系统上使用Azure上的Node.js,只需从Git发布:

http://www.windowsazure.com/en-us/develop/nodejs/common-tasks/publishing-with-git/