我是 Socket.io 的新手,我不明白如何使用 Socket.io 在两台计算机之间建立连接。我能够完成 Socket.io 网站上的聊天教程:http://socket.io/get-started/chat/
这使我能够通过连接到 localhost:5800 进行本地聊天(在同一台计算机上,多个选项卡)。但是,我无法使用此方法在多台计算机上聊天,即使它们连接到同一网络也是如此。我正在尝试在在线游戏中使用网络,因此我查看了不同游戏中的网络示例(例如这个 agar.io 克隆 - https://github.com/huytd/agar.io-clone )。我见过的所有文件要么假设存在其他js文件(与我的项目无关的文件),要么它们对我来说太困惑而无法理解。有没有人有一个可以在计算机之间发送数据包(例如“alive:true,speed:100”等字符串)的项目的工作示例?
非常感谢。
最佳答案
尝试在 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 服务器只会监听机器的内部“环回”地址(localhost
或 127.0.0.1
),这意味着它只能接收来自计算机上其他程序的连接。同一台机器。
如果您想使用它在不同网络上的两台计算机之间聊天,您需要在具有公共(public) IP 地址并且没有防火墙阻止聊天端口(在此为 3000)的服务器上运行 chat.js案件)。然后,您需要将聊天客户端指向该地址(例如 203.0.113.42:3000 或 myhost.com:3000,如果您已注册主机名)。
关于javascript - 使用 socket.io 在计算机之间发送数据包(不一定在同一网络上)的工作示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38665214/