mqtt - 如何使用 MQTT 实现 whatsapp 类型的信使?

标签 mqtt instant-messaging messenger

我想使用 MQTT 协议(protocol)实现一个像 whatsapp 一样的信使。
我应该阅读哪些教程?

我对几件事感到困惑:

  • 我应该如何实现消息传递的主题结构? (目前我使用的是/domainname/phonenumber/(如果电话A向电话B发送消息,它将向/domainname/B/发布消息)
  • 如果客户端 B 下线并在一段时间后上线,它如何在客户端下线时接收发送给他的消息(到主题/domainname/B/)?
  • 如何实现已发送/已发送/已读确认?

  • 我知道这些是非常基本的问题,但不幸的是,我找不到任何可以指导初始步骤的资源。

    结论:
    在与已经在 MQTT 中实现大规模 Messenger 部署的人交谈后,我得出结论认为 MQTT 应该只是一种协议(protocol)。 Pub/Sub 适合开始,但您应该拥有自己的业务逻辑层以提高灵 active 和性能。但是,您可以使用 pub/sub 树来实现大部分基本的 Messenger 需求,但是您会受到限制,并且以后扩展它会变得困难。

    最佳答案

  • 主题结构看起来不错,但可能应该有一个 ACL,所以
    客户只能订阅他们自己的主题。
  • 只要您不将“cleansession”选项设置为 true,那么代理应该存储并转发发送到客户端在断开连接之前订阅的主题的任何消息
  • MQTT 不支持 Sent/delivered/read 通知,您需要自己实现,最简单的方法是每个客户端有 2 个主题,一个用于接收消息,一个用于接收通知。每条消息都应该有一个 ID 号,可以在发送回原始发件人的通知中使用
  • 关于mqtt - 如何使用 MQTT 实现 whatsapp 类型的信使?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32572584/

    相关文章:

    c++ - Qt Creator 添加 mqtt 库

    mqtt - 哪个MQTT服务器用于> 1M连接

    objective-c - 即时消息框架示例

    ios - 从 iOS 应用打开 Facebook Messenger

    objective-c - 从线程中的 C 函数更新 UI

    amazon-web-services - 我应该将哪个域名作为 IoT MQTT 端点加入到我的 IoT 设备中?

    android - 如何在不使用设备消息传递应用程序的情况下集成聊天功能

    c# - 如何使用 C# 创建 IM 机器人

    facebook-messenger - 即使应用已获批准,也无法向非测试用户发送 Messenger 消息

    php - PHP 中的 Facebook Messenger Bot 并不总是响应用户