node.js - socket.io 绑定(bind)到特定的 ip 地址

标签 node.js socket.io

我有一个运行 IIS 和 node.js 的 Windows 服务器以及用于我正在开发的交互式白板应用程序的 socket.io。我希望 IIS 网站和 node.js 服务器都在端口 80 上监听,但绑定(bind)到不同的 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);

启动修改后的代码时出现错误:收听 EACCES

最佳答案

我看到没有人回答,所以我会发布这个,不确定它是否对你有帮助:

var io = require('socket.io');
var server = http.createServer();
server.listen(8080, 'localhost');
var socket = io.listen(server);

基本上只是将通话切换为收听。

关于node.js - socket.io 绑定(bind)到特定的 ip 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9419312/

相关文章:

javascript - 在 express 中呈现 HTML 时出错

node.js - 在 Apache 反向代理上运行 Socket.io

node.js - 可以通过for循环使用express.js创建许多app.get调用吗?

java - 如何在 android 上使用带有后台服务的 socket.io?

javascript - 是否有一个 javascript 客户端库,用于对具有存储支持的 ajax 请求进行排队

javascript - 400错误请求(使用node和socket.io制作游戏)

node.js - Firebase Functions 记录对象占用大量空间

node.js - Azure Active Directory动态回复URL

javascript - 寻找创建多人游戏的 Node.js 简单教程 (socket.io)

sockets - 在事件之间将属性附加到套接字