我们有一个flash应用程序,只与php后端通信,后端再次与mysql和redis通信。我们有很少的异步任务,结果通过轮询传递给Flash客户端。 对它的思考和研究让我看到了pub / sub和amqp。因此,我们的想法是将Flash直接连接到pub / sub或消息队列服务器。我对这些相关工具没有实际经验。对我来说最重要的是要知道是否可以进行这样的设置,这是安全的。
什么是安全的?
Redis有pub / sub,但我认为redis并不适合。
RabbitMQ具有限制与特定用户交换的功能。但我不确定如何进行身份验证或如何将其绑定到现有会话?我也想知道RabbitMQ有多好的短期通道可以扩展。
任何建议都非常有用!
答案 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
干杯