[英]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.