1

我有一个我试图在 Azure 上托管的节点应用程序,它创建了一个 websocket 服务器。我正在尝试使用以下代码创建 Web 套接字服务器:

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,我可以获得所需的功能吗?如果是这样,关于从哪里开始寻找修复的任何建议?

您可以在此处查看损坏的应用程序。

4

1 回答 1

3

它可以在 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/

于 2012-12-14T14:57:04.510 回答