我有一個Windows服務器運行IIS和node.js與socket.io爲我正在開發的交互式白板應用程序。我希望IIS網站和node.js服務器都偵聽端口80,但綁定到不同的IP地址。socket.io綁定到特定的IP地址
從我能找到的,socket.io不具備指定IP地址的能力。這種限制可以通過創建一個http服務器實例來解決。我是socket.io和node.js的新手,並且試圖做到這一點有點遺憾。我將包含原始服務器代碼(在特定端口上偵聽)以及我嘗試在特定IP地址上實例化服務器。
原始
(function() {
var io;
io = require('socket.io').listen(80);
io.sockets.on('connection', function(socket) {
socket.on('drawClick', function(data) {
socket.broadcast.emit('draw', {
x: data.x,
y: data.y,
type: data.type
});
});
});
}).call(this);
修改
(function() {
var host = "10.70.254.76";
var port = 80;
var http = require("http").createServer();
var io = require("socket.io").listen(http);
http.listen(port, host);
io.sockets.on('connection', function(socket) {
socket.on('drawClick', function(data) {
socket.broadcast.emit('draw', {
x: data.x,
y: data.y,
type: data.type
});
});
});
}).call(this);
我得到錯誤:啓動修改後的代碼
好吧,我的修改後的代碼工作,如果我設置端口爲8080.我得到EACCES錯誤,當我嘗試使用80 – TylerEKnight 2012-02-23 21:18:35
端口80是禁止的因爲它屬於sudoers(root用戶),你可以使用「sudo node app.js」來強制它,但這不是好習慣。 – sfiore 2016-09-13 09:43:31