Azure 上的 Websocket 服务器,带有 node.js



我正在尝试创建一个带有Node.js的websocket服务器,以便在Windows Azure上运行。这应该很简单,但我遇到了无法在任何地方找到解决方案的问题。

这是我的服务器端代码:

var ws = require('websocket.io')
    , http = require('http').createServer().listen(process.env.PORT)
    , server = ws.attach(http)
server.on('connection', function (socket) {
    socket.on('message', function () { });
    socket.on('close', function () { });
});

我如何知道我需要连接到哪个端口?我的客户端代码是:

var ws = new WebSocket("ws://socketiopuge.azurewebsites.net");
ws.onopen = function () {
    alert("opened");
};
ws.onmessage = function(msg) {
    alert(msg);
};
ws.onclose = function () {
    alert("closed");
};

当我运行代码时,我收到一个 501 错误代码,并触发了 onclode 事件。我相信问题是我需要在创建 WebSocket 时指定端口号。你们谁能指出我正确的方向?谢谢!

关于您的问题"我如何知道我需要连接到哪个端口",您需要创建一个输入终结点并为其设置正确的端口。配置后,您将在代码中使用相同的端口进行绑定和使用。

下面是一个关于在 Windows Azure Web 和 Worker 角色上运行 socket.io 的示例

如果您在 Windows Azure Web 角色

中托管 socket.io,请禁用服务器上的 WebSockets 传输,因为 Windows Azure Web 角色在 IIS7 上运行,而 IIS 7 尚不支持 Web 套接字。使用辅助角色,您无需担心它,可以直接使用 Web 套接字。

如果你使用的是新的 Azure 网站,它们尚不支持 websockets。这同样适用于通过 IIS 托管的所有网站 - 节点.js或不节点。

目前在 Azure 中支持 Websocket 的唯一方法是使用辅助角色并提供自己的节点.js可执行文件。

相关内容

  • 没有找到相关文章

最新更新