我们在android中实现了rabbitmq聊天。但是rabbitmq的java客户端是耗电的。对于android聊天,是不是很好用?我们使用直接交换个人队列的人和个人路由键。在rabbitmq中进行一对一聊天的最佳设计模式是什么? 以及减少电池使用的方法
答案 0 :(得分:10)
我认为直接使用RabbitMQ开发聊天是更好的解决方案。
还有其他解决方案更轻,请阅读post关于MQTT。
另一个标准解决方案是使用XMPP协议(例如whatsup使用自定义XMPP)。
我们做了一些测试,我们也有一些关于电池消耗的问题。
顺便说一句,你可以混合使用这些技术,将RabbitMQ作为后端和其他服务器(XMPP,MQTT)混合作为前端。阅读关于MQTT的post。
Facebook Messenger使用的MQTT
修改强>
我想添加这篇文章MQTT vs. XMPP Which Should I Choose?
<强> EDIT2 强>
请阅读官方rabbitmq-group
上的this和this答案 1 :(得分:1)
也许您可以将RabbitMQ与GCM结合起来以节省电力,因为系统会触发GCM并且不需要保持任何额外的连接。
例如:
当任何新活动进入时,应用会通过GCM收到通知。 然后建立一个新的Rabbit连接,如果没有消息再次进入,则会在一段时间后检索数据和超时。
因此,实际的“饥饿感”仅在短时间内存在,并且仅在必要时存在。
您还可以分析哪些用户倾向于始终将多条消息一个接一个地写在一起,并根据该值改变超时
答案 2 :(得分:0)
我认为实时交付的聊天应用程序是通过网络立即发送消息而不是可靠性。可靠性意味着确认接收交付。但实时聊天应用程序并不能确定它。 RabbitMQ是一个消息代理服务器,它首先专注于可靠性,但它不负责实时消息通信。您可以使用RabbitMQ进行实时通信,但有时可能不是实时通信。
您可以使用STOMP-WebSocket(对于简单消息传递),Firebase(即时消息的简单开发),但大多数专业且可用的协议是XMPP(可扩展消息传递和在线协议)实时沟通。
如果您对此答案有任何建议或疑问,请允许我对此发表评论。