使用socket.io在计算机之间发送数据包(不一定在同一网络上)的工作示例?

时间:2016-07-29 18:20:05

标签: javascript html networking socket.io

我是Socket.io的新手,我不明白如何使用Socket.io在两台计算机之间建立连接。我能够在Socket.io网站上完成聊天教程:http://socket.io/get-started/chat/

这使我能够通过连接到localhost:5800在本地聊天(在同一台计算机上,多个选项卡)。但是,即使它们连接到同一网络,我也无法使用此方法在多台计算机上聊天。我正在尝试在网络游戏中使用网络,所以我查看了不同游戏中的网络示例(例如这个agar.io clone - https://github.com/huytd/agar.io-clone)。我见过的所有人都假设存在其他js文件(与我的项目无关的文件)或者它们让我难以理解。有没有人有一个可以在计算机之间发送数据包(例如“alive:true,speed:100”等字符串)的项目的工作示例?

非常感谢。

1 个答案:

答案 0 :(得分:0)

尝试在chat.js中更改此代码:

http.listen(3000, function(){
  console.log('listening on *:3000');
});

到此:

http.listen(3000, '0.0.0.0', function(){
  console.log('listening on *:3000');
});

虚拟地址'0.0.0.0'告诉http服务器侦听您的计算机当前正在使用的所有网络地址上的连接,即在所有网卡上。如果没有这个,http服务器只会侦听机器的内部“环回”地址(localhost127.0.0.1),这意味着它只能接收来自同一台机器上其他程序的连接。

如果要使用此功能在不同网络上的两台计算机之间进行聊天,则需要在具有公共IP地址且没有阻止聊天端口的防火墙的服务器上运行chat.js(此处为3000)案件)。然后,您需要将聊天客户端指向该地址(例如,如果您已注册主机名,则为203.0.113.42:3000或myhost.com:3000)。