如何在没有node.js的JS中建立客户端客户连接



我正在尝试在JS中制作简单的TIC-TAC。

我几乎做了一切。现在只有一件事要做。

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

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

不幸的是,我的服务器不支持node.js。

有没有任何服务器端"套接字"的方法来实现它。

我认为我可以使用XMLHttpRequest()来将数据保存/从服务器文件中保存/加载数据并这样播放,但是我认为它需要很多代码,也许对于TTT,它足够快,但是对于更复杂的游戏还不够。

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

对于像tic-tac-toe这样的游戏,玩家轮流,延迟肯定是沟通中其他每个因素。仅出于这个原因,通常通过使用XMLHttpRequest类或Fetch API与HTTP协议进行通信,这是一种非常合理的方法,可以为您节省很多编程工作。

否则,当想要一个或几个低延迟和/或RTC频道(希望有一个充分的理由(时,WebRTC和WebSocket都是可行的候选人。

webrtc,一个绝对可以做点对点,而WebSocket使用客户端服务器模型。但是,即使是Webrtc也需要"信号"。最初,在最终切换到直接在同行之间交流之前,以交换对等标识符的服务。尽管需要同行标识符来设置WEBRTC通信,但API故意不涵盖对等标识符的交换方式 - 但是您要设计信号服务,这取决于您。对于所有Webrtc关心,您可以"帖子"对等ID到HTTP服务器,并使用另一个对等的Web浏览器和反之亦然检索。webrtc从已知的同伴ID开始。

否则,如果配置为此,WebRTC能够利用眩晕和/或转向服务来维护对等连接,在任何两个客户端之间都禁止直接的IP路由网络上点对点交流。

在所有情况下都不需要Stun/Turn服务,但是了解平均网络条件,而无需使用电击或转弯或两者兼而有之,您的应用程序对于由多个任意网络隔开的任何两个客户都不是很可靠的。就像在各方被至少一个防火墙或固执的路由器分开的情况下一样。

转弯服务将透明地路由WEBRTC通信,作为继电器。

昏迷服务可以在客户之间的防火墙中打孔,以至于以后可以进行点对点交流。这意味着与转弯服务相反,它在建立后者后没有发挥任何积极的作用。

webrtc有点复杂,尤其是当您期望沿sendreceive的线路上API,但是对于开发人员来说,简化的连接示例应该可以理解。

您也可能不需要直接使用webrtc api,有些库将webrtc封装成一种更简单的API或另一种风味的API,同时隐藏了更多的边缘或" Boilerplate"。WebRTC的各个方面也有助于最大程度地减少陷入困境的风险,因为不同的用户代理人臭名昭著地以不同的方式实施WebRTC的不同部分。

这些库之一是peerjs,但毫无疑问。

与WEBRTC不同的WebSocket API需要符合Websocket的服务器,并且WebSocket API不做点对点。好消息是1(符合Websocket的服务通常只是一个高级继电器(通常与应用程序后端逻辑融合(,尽管在应用程序级别上工作,而不是转弯的会话级别,而2(有很多&quot" Turn-Kewer;WebSocket服务器实现。

最新更新