socket.io de liaison à une adresse ip spécifique

J'ai un windows serveur exécutant IIS et node.js avec la prise.io pour un tableau blanc interactif de l'application que je développe. Je veux à la fois le site web IIS et node.js server pour écouter sur le port 80, mais être liés à différentes adresses IP.

De ce que je peux trouver, socket.io n'a pas la possibilité de spécifier une adresse ip. Cette limitation peut soi-disant être surmontée par la création d'un serveur http de l'instance. Je suis nouveau sur le socket.io et node.js et je suis un peu perdu en essayant de le faire. Je vais inclure le serveur d'origine code (qui écoute sur un port spécifique) et une tentative de ma part pour instancier un serveur sur une adresse IP spécifique.

Original

(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);

Modifié

(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);

J'obtiens l'Erreur: écouter EACCES lors du démarrage de la modification du code

  • Ok, Mon code modifié fonctionne si j'ai mis le port 8080. Je reçois le EACCES l'erreur lorsque j'essaie d'utiliser 80
  • le port 80 est interdit, car cela appartient à sudoers (les utilisateurs root), vous pouvez le forcer à l'aide de "sudo nœud app.js" mais n'est pas une bonne pratique.
InformationsquelleAutor TylerEKnight | 2012-02-23