簡體   English   中英

Azure上具有node.js的Websocket服務器

[英]Websocket server on Azure with 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時需要指定端口號。 你們中的任何人都能指出我正確的方向嗎? 謝謝!

關於您的問題“我怎么知道我需要連接到哪個端口”,您需要創建一個輸入端點並為其設置適當的PORT。 配置完畢后,您將在代碼中使用相同的端口進行綁定和使用。

這是有關在Windows Azure Web和Worker角色上運行socket.io的示例

如果您在Windows Azure Web角色中托管socket.io,請禁用服務器上的WebSockets傳輸,因為Windows Azure Web角色在IIS7上運行,而IIS7尚不支持Web套接字。 使用工作者角色,您無需擔心,可以直接使用Web套接字。

如果您使用的是新的Azure網站,則它們尚不支持websocket。 對於通過IIS托管的所有網站(是否為node.js)也是如此。

當前在Azure中支持websocket的唯一方法是使用工作人員角色並提供您自己的node.js可執行文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM