Facebook Flash游戏客户端 - 服务器通信

时间:2011-07-06 13:24:58

标签: flash facebook sockets networking communication

我们目前正在开发一款适用于Facebook的小型独立牌游戏,我们希望这款游戏能够达到数十万玩家(最终)。

我们已经找到了大部分问题(可扩展性,服务器端架构等) - 但是有一个问题 - 客户端和客户端之间的通信。服务器

我们有以下要求:

  • 服务器端推送消息(无客户端消息请求)
  • 高可扩展性(应该支持前几百个,后来希望有数千个CCU)
  • 安全,可靠的层
  • 适用于大多数计算机,路由器和设备。浏览器
  • 适用于Adobe Flash / AS3

首先想到的是套接字连接,但我想知道,是否有更好的解决方案可以满足我们的需求?

谢谢!

2 个答案:

答案 0 :(得分:1)

套接字连接几乎是不可避免的(参见transport layers)。

一个好主意是使用TCP:它保证交付(高可靠性),它以“连接”为导向。有一些缺点,但大多数计算机,路由器和浏览器都没有其他替代方案。

一个更重要的问题是:你打算通过TCP发送什么?通常,最好使用可在Flash和服务器中使用的内容(例如,请参阅Remote Procedure Call)。

“推送”消息通常只是HTTP连接的问题,因为它旨在处理同步请求。但是,在Flash中你没有这个限制。

可以通过“包装”TCP连接来添加安全性:使用SSL或TLS。

  • XML序列化(XML-RPC):易于开发和维护,性能适中,可靠。
  • RTMP(Real Time Messaging Protocol):原生于Flash,性能卓越,非常适合实时游戏,可通过HTTP进行隧道传输(超越任何防火墙/路由器)。

请参阅NetConnection课程和Action Message Format

  

Adob​​e Integrated Runtime和Adobe Flash Player使用AMF在应用程序和远程服务器之间进行通信。 AMF将远程过程调用(RPC)编码为紧凑的二进制表示形式,可以通过HTTP / HTTPS或RTMP / RTMPS协议进行传输。对象和数据值被序列化为这种二进制格式,从而提高了性能,允许应用程序加载数据的速度比基于文本的格式(如XML或SOAP)快10倍。

(来自http://www.pyamf.org/

答案 1 :(得分:1)

我们在Flash游戏中使用WebORB来传达服务器端和客户端,但我不知道这对您的要求是否足够。

对不起,如果我想念。