如何实现现代聊天系统

我需要开发和混合应用程序,作为function,实现即时消息。 这些function必须是:

  • 一对一聊天
  • 所有在线用户列表
  • 离线留言:上网时用户收到所有留言
  • 当连接断开时处理失败发送消息

该平台必须能够处理10.000-5.50.000个用户

我现在看到有很多协议:xmpp,mqtt,amqp有很多平台/框架:ejabberd,rabbitmq等等。

今天有多less启动实现聊天在他们的应用程序? (即:Tinder)最好是使用ejabberd,或者,例如,与socket.io实现?

今天有很多解决scheme,但我不知道哪个更好,哪个技术今天启动。