Java中的多人游戏。什么';什么是最好的解决方案?
我正在用java编写一个多人/多房间游戏(Hearts),使用RMI和一个集中式服务器。 但有一个问题:RMI回调将不起作用,因为客户端是NATT和防火墙。我基本上需要服务器将数据更新推送到客户机,可能不需要使用轮询和套接字(我会在更高级别编写代码)Java中的多人游戏。什么';什么是最好的解决方案?,java,Java,我正在用java编写一个多人/多房间游戏(Hearts),使用RMI和一个集中式服务器。 但有一个问题:RMI回调将不起作用,因为客户端是NATT和防火墙。我基本上需要服务器将数据更新推送到客户机,可能不需要使用轮询和套接字(我会在更高级别编写代码) 在您看来,实现这种体系结构的最佳解决方案是什么?ajax应用程序是唯一的解决方案吗?你说你不想要轮询,但ajax正是这样。您可以查看,但无论如何都很难逃避轮询(例如Comet本身在下面使用轮询)。您说您不想要轮询,但AJAX正是如此。您可以查看,但
在您看来,实现这种体系结构的最佳解决方案是什么?ajax应用程序是唯一的解决方案吗?你说你不想要轮询,但ajax正是这样。您可以查看,但无论如何都很难逃避轮询(例如Comet本身在下面使用轮询)。您说您不想要轮询,但AJAX正是如此。您可以查看,但无论如何都很难逃避轮询(例如Comet本身在下面使用轮询)。您可以使用对等框架,如JXTA。您可以使用对等框架,如JXTA。我可以推荐两种主要技术
我可以推荐两种主要的技术
如果您需要扩展到大量并发连接,请使用非阻塞I/O框架,如or(相关SO post:)。谢谢!我来看看!PS:在我的问题中,我想问是否有一种技术可以替代AJAX来避免轮询。也许我被误解了Comet为什么在下面使用轮询?我以为它只是打开了一个连接,然后用它来发送数据-轮询从哪里来?@Voo,浏览器可能会在连接时超时。@Thorbjørn啊,好的,在这种情况下,你必须检测到并打开一个新的连接,当然。就我个人而言,当我在这种情况下想到“轮询”时,我理解在常规时间步中的请求,但我认为这也属于轮询范围。@Voo,问题是服务器需要随意向客户端发送信息,但客户端必须启动连接。谢谢!我来看看!PS:在我的问题中,我想问是否有一种技术可以替代AJAX来避免轮询。也许我被误解了Comet为什么在下面使用轮询?我以为它只是打开了一个连接,然后用它来发送数据-轮询从哪里来?@Voo,浏览器可能会在连接时超时。@Thorbjørn啊,好的,在这种情况下,你必须检测到并打开一个新的连接,当然。就我个人而言,当我在这种情况下想到“轮询”时,我理解在常规时间步中的请求,但我认为这也属于轮询范围。@Voo,问题是服务器需要随意向客户端发送信息,但客户端必须启动连接。这是桌面应用程序还是web应用程序?这是桌面应用程序还是web应用程序?