2010-11-13 73 views
1

我正在开发一款游戏,并且希望在将来我决定添加多人游戏时,可以自由选择UDP和TCP连接。我不确定在安全浏览器中如何做到这一点。在基于浏览器的游戏中创建UDP和TCP连接?

对于多人游戏,我可以想到两种情况。首先是玩家成为游戏的主机(在浏览器中),因此需要通过TCP或UDP直接与其他玩家进行通信。这将节省带宽成本。

第二种方案是让Web服务器托管游戏并通过TCP或UDP再次将消息传递给客户端。

Flash或Java小程序是否允许我这样做?如果没有,我可以用于浏览器的替代品,还是我坚持提供游戏下载和安装?

+0

我不知道使用HTTP从不同的协议是一个好主意,如果你想有任何的机会,以通过防火墙... – 2010-11-13 21:03:43

+0

你可能会因此它运行在Adobe AIR尝试端口您的游戏。 – drudge 2010-11-13 21:05:25

回答

0

两个Java小程序/网络开始应用程序允许你建立游戏等网络连接

首先是一个玩家成为游戏的主机(浏览器),因此需要通过TCP或UDP直接与其他玩家进行交流。

Java强制一个“同源策略”,它说,(没有从用户的特别许可),您的应用程序只能连接回它是从哪里来的服务器。

AFAIK,同样适用于Flash应用程序。

第二种情况是有Web服务器主机的游戏,并通过TCP或UDP再次传递消息来回给客户。

如果您不想要求用户获得特殊权限,这可能是一条路。

0

Javascript不能做UDP。 Applets无论如何都可以进行连接,并且只要用户启用Java并且信任您的证书,他们就可以做更多的网络事务(如果已签名)。鉴于最近facebook上的恶意软件小程序的历史,如果您想制作基于浏览器的游戏,我不打算使用小程序。

+0

如果未签名,Applets可以将数据报发送到始发服务器,尽管它们不能侦听数据报,这有点垃圾。 – 2010-11-13 21:55:59

0

这是可能在Flash:

  • 选择一个与中央服务器和终端到终端的对等:使用同行(仅适用于UDP)在Flash中是可行的,但目前在beta和要求用户可以使用Flash Player 10或10.1,具体取决于您的实施。查看example demo game。可以使用Real Time Messaging Protocol(仅适用于TCP)。实时多人Flash游戏通常使用此功能。您也可以选择通过HTTP交换数据。