Azure 上使用 Node.js 的 Websocket 服务器

JPu*_*uge 3 javascript azure websocket node.js

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

这是我的服务器端代码:

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 () { });
});
Run Code Online (Sandbox Code Playgroud)

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

var ws = new WebSocket("ws://socketiopuge.azurewebsites.net");

ws.onopen = function () {
    alert("opened");
};

ws.onmessage = function(msg) {
    alert(msg);
};

ws.onclose = function () {
    alert("closed");
};
Run Code Online (Sandbox Code Playgroud)

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

Avk*_*han 5

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

以下是有关在 Windows Azure Web 和辅助角色上运行 socket.io的示例

如果您在 Windows Azure Web 角色中托管 socket.io,请禁用服务器上的 WebSocket 传输,因为 Windows Azure Web 角色在 IIS7 上运行,IIS7 尚不支持 Web 套接字。使用 Worker Role 你不需要担心它,你可以直接使用 Web Sockets。