我正在为一个网页编写一个简单的javascript游戏。我将使用tidesdk将其转换为桌面。我希望允许不同机器上的玩家相互播放,而不需要通过服务器进行通信。
我很抱歉,这些都是模糊和开放的问题,但我真的不知道从哪里开始寻找这些东西,因为我真的不知道我正在寻找的东西是什么。
..。哦,如果我能帮上忙的话,我不想用第三方的东西。可能是jquery推了一下。
发布于 2013-05-30 18:12:32
对于web浏览器提供的API来说,这是不可能的(正如其他人所说,您需要使用类似Socket.IO的东西并通过服务器进行通信)。幸运的是,由于您使用的是TideSDK,只要您不需要很高的网络效率,这是可能的。您的需要提供一个服务器,但是它不需要足够强大来承载实际的游戏。
通用客户端与服务器方法
组织网络还有其他方法,但如果您认为这些方法更容易实现,则可以查找这些方法。
您的服务器将托管实际游戏下载,并提供匹配功能。人们下载的客户端将与此婚介服务器联系,以找到其他想玩的人。
匹配服务器应该选择其中一个客户端作为其他客户端的主机。最后,匹配服务器将告诉被选定为主机的客户端它是主机,并向它提供每个人的连接信息(端口和IP地址),同时向其他客户端提供所选主机的连接信息。主机将连接到其他客户端。
主机将是唯一真正进行游戏处理的计算机,而其他客户端只显示主机发送给他们的任何信息。客户端从每个玩家的角度在各自的计算机上呈现游戏的当前状态,并捕获用户输入,然后发送到主机进行处理。
实现
TideSDK提供了一个Ti.Network.TCPSocket对象,它可以使原始TCP客户端连接到TCP服务器。不幸的是,它也没有提供一种制作原始TCP服务器的方法。相反,TideSDK提供了一个Ti.Network.HTTPServer对象(它通过TCP实现HTTP协议服务器)和一个Ti.Network.HTTPClient对象(它提供了一个HTTP (实际上它只是对普通AJAX的一个抽象)。您可以在主机上使用提供的HTTP服务器,并使用提供的HTTP客户端在客户端上直接连接到它。数据将使用HTTP协议交换。据我所知,这是你唯一的选择。
我没有找到任何示例代码(除了TideSDK文档中的代码),但是如果您真的感兴趣,您可能会找到一些示例代码。
下一步
如果我想继续使用TideSDK,我将执行以下操作:
发布于 2013-05-30 17:00:24
是的,一般情况下是可能的,套接字是你所需要的。虽然我认为这在实践中是不可能的,但原因如下。
通常,在P2P游戏中,会有一个服务器知道谁在线,以及他们的IP是什么。当新玩家连接到服务器时,他们会看到其他用户的列表,他们可以选择他们想要玩的人。
没有服务器,用户将无法查看谁在线,并回答您的第三个问题:
所以,如果你想构建一个游戏,那么你需要一个服务器。我建议Node.JS和Socket.IO一起
https://stackoverflow.com/questions/16841402
复制相似问题