我正在为网页编写一个简单的JavaScript游戏。我将使用tidesdk将其转换为桌面。我想允许不同机器上的玩家互相玩而不需要通过服务器进行通信。
我很抱歉这些是模糊和开放的问题,但我真的不知道从哪里开始寻找这些东西,因为我真的不知道我要找的东西是什么。
...哦,如果我可以提供帮助,我不想使用任何第三方的东西。也许jquery在推动。
答案 0 :(得分:3)
使用Web浏览器提供的API是不可能的(您需要使用类似Socket.IO的东西并通过服务器进行通信,正如其他人所说的那样)。幸运的是,由于您使用的是TideSDK,只要您不需要很高的网络效率就可以实现。您将需要提供服务器,但它不必足够强大来托管实际的游戏。
还有其他组织网络的方法,但如果您认为它们更易于实施,您可以查看这些方法。
您的服务器将托管实际的游戏下载并提供匹配功能。人们下载的客户将联系该匹配服务器以找到想要玩的其他人。
匹配服务器应选择其中一个客户端作为其他客户端的主机。最后,匹配服务器将告知选择作为主机的客户端它是主机并向其提供每个人的连接信息(端口和IP地址),同时为其他客户端提供所选主机的连接信息。主机将连接到其他客户端。
主计算机将是唯一一个实际进行任何游戏处理的计算机,其他客户端只显示主机发送的任何信息。客户端从每个玩家的角度在各自的计算机上呈现游戏的当前状态,并捕获用户输入,然后发送给主机进行处理。
TideSDK提供了一个Ti.Network.TCPSocket对象,可以与TCP服务器建立原始TCP客户端连接。不幸的是,它也没有提供制作原始TCP服务器的方法。相反,TideSDK提供了一个Ti.Network.HTTPServer对象,它通过TCP实现HTTP协议服务器,以及一个Ti.Network.HTTPClient对象,它提供了一个HTTP客户端(它实际上只是对普通AJAX请求API的抽象)。您可以使用主机上提供的HTTP服务器,并使用提供的HTTP客户端在客户端上直接连接到该服务器。将使用HTTP协议交换数据。据我所知,这是你唯一的选择。
我没有找到任何示例代码(超出TideSDK文档中的内容)但如果您真的感兴趣,可能会找到一些代码。
如果我想继续使用TideSDK,我会做以下事情:
答案 1 :(得分:1)