如何在没有 node.js 的情况下在 js 中建立客户端 - 客户端连接?

技能GG

我正在尝试在 JS 中制作简单的井字游戏。

我做了几乎所有的东西。现在只有一件事要做。

我想让它可以与某人在线玩。

我想通过互联网在两个游戏之间发送数据。

不幸的是,我的服务器不支持 Node.JS。

有没有办法让它在没有任何服务器端“套接字”的情况下发生。

我想我可以用它XMLHttpRequest()来保存/加载数据到/从服务器文件中并像这样玩,但我认为它需要大量代码,也许对于 ttt 来说它足够快,但对于更复杂的游戏,它不会足够了。

我知道这很难,但是在 node.js 之前他们是怎么做到的?

安姆

对于像 Tic-Tac-Toe 这样玩家轮流进行的游戏来说,延迟肯定比其他所有通信因素都排在第二位。仅出于这个原因,通常通过使用XMLHttpRequest类或Fetch API仅与 HTTP 协议通信是一种非常合理的方法,它将为您节省大量编程工作。

否则,当需要一个或多个低延迟和/或RTC通道时,希望有一些好的理由,WebRTCWebSocket都是可行的候选者。

一方面,WebRTC 绝对可以进行点对点,而 WebSocket 使用客户端-服务器模型。但即使是 WebRTC 也需要“信令”服务来交换对等标识符,然后最终切换到直接在对等节点之间进行通信。虽然建立 WebRTC 通信需要对等标识符,但 API 故意不涵盖对等标识符的交换方式——无论您想设计信令服务,都由您决定。对于所有 WebRTC 问题,您可以“POST”一个对等 ID 到 HTTP 服务器,并使用其他对等的 Web 浏览器检索它,反之亦然。WebRTC 从已知的对等 ID 开始。

否则,如果配置为这样做,WebRTC 能够利用STUN和/或TURN服务来维持对等连接,否则网络上禁止任何两个客户端之间的直接 IP 路由——这是真正对等的必要先决条件- 同行交流。

并非在所有情况下都需要 STUN/TURN 服务,但了解平均网络条件,如果不使用 STUN 或 TURN 或两者,您的应用程序对于任意网络上的任意两个客户端都不会非常可靠。就像在双方被至少一个防火墙或一个兼具一体的顽固路由器分隔的场景中一样。

然后,TURN 服务将透明地路由 WebRTC 通信,充当中继。

STUN 服务在客户端之间的防火墙中打孔,以便之后可以进行点对点通信。这意味着与 TURN 服务相比,它在后者建立后不会在通信中发挥任何积极作用。

的WebRTC是一个有点复杂,特别是如果你的线沿线的预期的APIsendreceive,而是一种简化的连接例子应该是可以理解的开发商。

您可能也不需要直接使用 WebRTC API,有些库将 WebRTC 封装成一种或另一种更简单的 API,API 同时隐藏了 WebRTC 的更多边缘或“样板”方面,这也有助于最大程度地降低获取的风险陷入麻烦,因为不同的用户代理因以不同的方式实现 WebRTC 的不同部分而臭名昭著。

这些库之一是PeerJS,但毫无疑问还有其他

WebSocket API 与 WebRTC 不同,它需要一个兼容 WebSocket 的服务器,而 WebSocket API 不做点对点。好消息是 1) 符合 WebSocket 的服务通常只是一个高级中继(通常与应用程序后端逻辑融合),尽管在应用程序级别而不是 TURN 的会话级别工作,并且 2) 有很多“转向”关键”WebSocket 服务器实现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Node JS中配置Redis客户端

如何在客户端(CryptoJS)和服务器(Crypto Node.js)之间建立Diffie Hellman连接

如何在Node.js的客户端设置令牌?

Node.js-获取所有连接的客户端IP地址的列表?

如何使用 node.js 处理客户端路由?

如何在Node JS中获取客户端计算机名称

如何在node.js中设置grpc客户端超时

如何在Aerospike Node.js客户端中获取主键

如何在Azure Functions node.js中获取客户端IP地址?

如何在Node.js中确定客户端操作系统

建立安全TLS连接之前客户端网络套接字已断开连接Node.js v13.0.1

Node.js - PostgreSQL (pg) :客户端已经连接。您不能重复使用客户端

在Node.JS中向客户端发送通知

node.js中的REST客户端

断开node.js中以前的客户端socket.io套接字的连接

在没有模板引擎的情况下将服务器标签嵌入客户端HTML \ JS脚本中

如何在Node.js中从客户端调用服务器端函数(例如html按钮onclick)?

在Node.js中,如何从处理程序/回调方法向客户端发送消息

如何使新的elasticsearch node.js客户端仅在promise中返回主体?

如何从Cloud Storage Node.js客户端中的URL上传文件

如何将消息发送到Node.js中的特定客户端

如何最好地在Node.js中实现套接字客户端并中继到前端?

在Node.js中,如何防止客户端从我的网站打开多个实例

如何在Nuxt中添加客户端js库>

如何在带有 Node-JS 的浏览器中在客户端执行 javascript 函数?

是否可以将MQTT客户端连接到具有Node.JS作为中间网关的RabbitMQ?

Xpages:如何使用客户端JS在没有硬编码的情况下获取字段的句柄?[像这样]

如何使用连接到套接字的socket.id发送多个客户端(Node.js,Socket.io)

Socket.io Node Js服务器和React js客户端未连接