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

标签 javascript html networking socket.io

我是 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 服务器只会监听机器的内部“环回”地址(localhost127.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/

相关文章:

javascript - 如何在文本输入溢出时添加另一行?

html - 在 Bootstrap 4 中垂直堆叠的列之间添加间距

css - 窗口大小调整不起作用

windows - AI_FQDN 和 AI_CANONNAME 结果在 ADDRINFOW 结构中有什么区别?

networking - 在 Azure 上设置 Windows 域并让我的笔记本电脑成为其中的一部分

python-3.x - 在Python套接字上使用select()和TCP Keepalive的问题

javascript - Accordion 防止点击链接

javascript - 为什么我的代码没有获取 JSON 值?

javascript - 在 ReactJS 中从组件状态传递样式

html - iPhone Safari 滚动超出 html 标签