Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在创建Socket.io套接字时使用IP地址参数_Javascript_Node.js_Sockets_Websocket_Socket.io - Fatal编程技术网

Javascript 在创建Socket.io套接字时使用IP地址参数

Javascript 在创建Socket.io套接字时使用IP地址参数,javascript,node.js,sockets,websocket,socket.io,Javascript,Node.js,Sockets,Websocket,Socket.io,在下面的代码段中,教程作者演示了如何修改原始教程以包含http服务器。这是片段 var http = require(‘http’), fs = require(‘fs’), io = require(‘socket.io’), index; fs.readFile(‘./chat.html’, function (err, data) { if (err) { throw err; } index = data; }); var server = http.c

在下面的代码段中,教程作者演示了如何修改原始教程以包含http服务器。这是片段

var http = require(‘http’),  
fs = require(‘fs’),  
io = require(‘socket.io’),  
index;  
fs.readFile(‘./chat.html’, function (err, data) {  
 if (err) {
    throw err;
 }
 index = data;
});
var server = http.createServer(function(request, response) {  
  response.writeHeader(200, {“Content-Type”: “text/html”});
  response.write(index);
  response.end();
}).listen(1223);
//and replace var socket = io.listen(1223, "1.2.3.4"); with:
var socket = io.listen(server); 
原始教程中的代码不包括http服务器,
socket
被定义为:

var socket=io.listen(1223,“1.2.3.4”)

我注意到他替换了变量的内容
io.listen(1223,“1.2.3.4”)
服务器
,其中不包括任何ip(
1.2.3.4

我的问题:

  • 参考IP地址的目的/效果是什么
  • 为什么在传递http服务器以创建套接字时会将其排除在外

当您在端口上侦听时,可以选择包括要侦听的特定接口的IP地址。例如,您可能有多个具有多个IP地址的网络接口,并且只希望您的服务在其中一个上运行。一种更常见的使用情况是,您只希望在本地主机上访问您的服务器,因此您可以让它只在
127.0.0.1
上侦听

现在,当您调用
io.listen(server)
其中
server
是现有的Node.js HTTP服务器时,Socket.io实际上根本没有打开新的侦听连接。这是Socket.IO在现有HTTP服务器上包装其方法的快捷方式。如果要指定要侦听的特定接口地址,则需要在HTTP服务器上调用
.listen()
的位置执行此操作,在调用
io.listen(服务器)
的位置上方

Node.js中原始网络套接字文档中的更多信息: