将flash连接到pub / sub或amqp服务器?

时间:2011-05-20 13:06:11

标签: flash asynchronous amqp publish-subscribe

我们有一个flash应用程序,只与php后端通信,后端再次与mysql和redis通信。我们有很少的异步任务,结果通过轮询传递给Flash客户端。 对它的思考和研究让我看到了pub / sub和amqp。因此,我们的想法是将Flash直接连接到pub / sub或消息队列服务器。我对这些相关工具没有实际经验。对我来说最重要的是要知道是否可以进行这样的设置,这是安全的。

什么是安全的?

  • 服务器只接收公共数据(如果泄漏给其他用户则没问题)
  • 服务器相当成熟,可以限制公共使用(没有写入等)
  • 服务器将托管在专用计算机上(如有必要)

Redis有pub / sub,但我认为redis并不适合。

RabbitMQ具有限制与特定用户交换的功能。但我不确定如何进行身份验证或如何将其绑定到现有会话?我也想知道RabbitMQ有多好的短期通道可以扩展。

任何建议都非常有用!

2 个答案:

答案 0 :(得分:1)

如果安全,您的意思是可以在Internet上使用它,那么除非您将MQ代理作为SSL服务器运行,否则AMQP可能不是最佳选择。有关RabbitMQ and SSL is here的更多信息。我强烈推荐RabbitMQ网站获取有关AMQP各方面的信息。

如果这对你来说太过分了,那么像0MQ pub / sub这样的简单协议可能会更好。它们没有安全层,但您可以在应用程序级别加密消息。有一个涵盖安全性的FAQ at the 0MQ website

与Redis不同,上述两种解决方案都是真正的消息排队解决方案。任何具有网络接口(包括SQL Server)的数据库都可用于将粗略的消息队列系统混合在一起。我做的第一个是在1997年,但我不建议现在0MQ和RabbitMQ可以自由使用。

如果使用AMQP,则必须依靠MQ代理的安全性来防止中间人攻击,因为所有消息都通过代理。但是如果您使用0MQ,那么您将负责使您自己的应用程序安全。至少这需要加密消息,其中包括要在任何回复消息中使用的令牌,如果回复令牌不正确,您将忽略该消息。

答案 1 :(得分:0)

如果您不介意使用java方式,可以使用BlazeDS Messaging http://opensource.adobe.com/wiki/display/blazeds/BlazeDS

因为你已经有了一个php后端,check this out用于某些php的可能性。

这是关于此事的另一篇好文章:http://www.infoq.com/articles/blazedsjms1

干杯