2014-07-27 23 views
2

我要创建一个游戏。 起初它将是浏览器游戏。 后来它会是APP(Android,iPhone游戏)。哪种技术最好立即向客户通知服务器事件?

在服务器端我使用nginx,apache,php。

=================

我需要告知网游玩家对不同事件。 例如:一个用户被另一个用户攻击。我应该立即通知他。

古典AJAX不能在那里出错。我读过一些关于彗星,网络套接字和其他一些技术的内容。 但我仍然无法理解,哪种解决方案对我来说是最好的? 请帮我做决定。

回答

0

也许你可以尝试Server Sent Events。

使用SSE,将维持一个常数连接,直到页面被卸载,如果连接出现问题或手动关闭连接。每当发生某些事情时,例如,一名玩家正在遭到攻击,您会发送一个event命令给客户端,客户端然后根据事件数据采取行动。

虽然它没有在每一个浏览器中运行的是,它是一个技术,你可以尝试

http://www.html5rocks.com/en/tutorials/eventsource/basics/给出了SSE一些进一步的解释,并就如何设置它

+0

SSE不受任何版本的Internet Explorer支持 – vtortola

+0

我意识到这一点。在IE中,可以使用longpolling。长时间的连接会一直持续到事件发生。然后关闭连接,并重新打开新连接 – brilletjuh

0

围棋与WebSocket的兼容。使用此功能,您可以同时处理从客户端浏览器发送到服务器的数据(例如“用户A攻击用户B”)以及通过单个通道从服务器发送的数据。这样可以节省服务器资源 - 并且拥有单一技术比两个单独的技术(AJAX +反向信道的东西)要好。

此外,还有用于Android和iOS的WebSocket库,因此您可以在未来附加本地客户端。

因为您需要一次将事件分发给多个客户端,所以使用诸如Publish &之类的内容在WebSocket上订阅是有道理的。

我建议看看Crossbar.io - 这是一个开源应用程序路由器,它发布&订阅开箱即用。

完全披露:我为Crossbar.io开源项目的创始人Tavendo工作。

相关问题