分散式聊天通信协议

时间:2016-08-18 10:35:33

标签: android node.js websocket xmpp chat

我正在设计一个聊天应用程序,其中没有中央服务器或数据库处理所有传入和传出消息。它将完全分散。

我的项目及其要求的总结

  • 每个用户都会通过Android手机与分配给他们的特定node进行通信。然后,此节点将直接与属于他希望发送消息的用户的node进行通信

  • 聊天消息将在nodes之间通过p2p

  • 所用库之一的Ethereum协议进行通信
  • 聊天的用户数量有限,1500-2500

  • 将节点映射到用户将通过DHT完成并且不是问题

  • 我希望尽可能少地依赖GCM

  • 服务器将完全用Node js编写。我已经在XMPP,socketio和websockets上广泛阅读,但我无法得出使用内容的结论。请记住,我编写的代码将部署在多个nodes即服务器

  • 当然,应用程序将运行后台服务,当应用程序处于后台或根本不运行时,需要显示新消息的通知

  • 快速部署对我来说是最不重要的因素。我只是在寻找最强大和可定制的最终产品

  • 我想坚持服务器的nod​​ejs

XMPP优于websockets的主要优势是,在XMPP中,聊天所需的许多功能是开箱即用的吗?或者还有更多吗?

我有一个从各种堆栈问题中获得的库列表,以及xmpp和websocket实现的示例。

在我的情况下,延迟增加1-2秒不是问题,但电池对话很重要。

This link建议使用websockets进行电池消耗不是问题。

1 个答案:

答案 0 :(得分:-1)

检查MQTT协议。它的重量轻,使用的数据量最少。