首页 文章

Google Pub / Sub可以用于聊天消息吗?

提问于
浏览
0

我正在开发一个在用户之间聊天的应用程序 . 为此目的使用Pub / Sub是否有意义?我在文档中找不到可能的用例 . 它有什么好的理由不合适吗?

2 回答

  • 0

    Google Pub / Sub可以用于聊天消息吗?

    是 . 我不会使用Pub / Sub进行人对人 chat 消息传递 . Pub / Sub旨在使系统脱离自身以支持分布式系统 .

    为什么不使用Pub / Sub:

    • 权限 . 您需要创建服务帐户凭据并将此Json文件分发给每个订户 . 这不安全 .

    • 每个聊天人员都需要订阅Pub / Sub主题,然后 poll 该订阅 . 这意味着每个聊天人一个订阅 . 这既不是一个好的设计也不是 inexpensive .

    对于 chat 有更好的解决方案 .

  • 0

    Google Cloud Pub / Sub不适合与聊天产品中的最终用户设备进行通信 . Cloud Pub / Sub专为种子设计:相对少量的长寿命流,需要高吞吐量 . 在聊天应用程序中,您需要涓流:大量短暂的流量,吞吐量低 .

    Cloud Pub / Sub quotas仅允许每个主题或每个项目10,000个主题项目和10,000个订阅 . 在设置新的流式传输管道时,通常会在开始时创建一次主题及其订阅,然后从该点开始发布和订阅 . 因此,Cloud Pub / Sub更适合服务器到服务器通信或大规模流事件摄取,通常与Dataflow和/或BigQuery相关 .

    Cloud Pub / Sub的权限模型也不是聊天应用程序的好选择 . 写入或读取主题或订阅的权限要求用户进行身份验证 . 使用项目中的权限对每个用户进行身份验证并不可行,因此您可以选择为所有用户使用通用凭据,这可能是不安全的 .

    那个_52633不是聊天服务的一部分,它不会被用来向特定用户传递消息 . 实际上,对于发送到环聊聊天机器人的邮件,Cloud Pub / Sub可以是used as the transport mechanism . 但是,在这种情况下,对用户的响应会直接转到Hangouts Chat API,而不会通过Pub / Sub返回 . 因此,如果您正在实施聊天服务,您可能会让您的用户向您设计的前端服务器发送消息,然后将这些消息发布到Cloud Pub / Sub . 您构建的另一台服务器可能是这些消息的订阅者,然后将适当的消息传递给适当的个人用户 . 在这种情况下,Cloud Pub / Sub用于从您的前端服务器(torrent)接收所有消息,并且向单个用户传递消息属于其他一些机制(trickle) . Google Cloud中针对此单个设备交付而设计的产品是Firebase Cloud Messaging

相关问题