Javascript 在创建Socket.io套接字时使用IP地址参数
在下面的代码段中,教程作者演示了如何修改原始教程以包含http服务器。这是片段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
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中原始网络套接字文档中的更多信息: