Google cloud platform pubsub是否适合客户端桌面应用程序使用?

Google cloud platform pubsub是否适合客户端桌面应用程序使用?,google-cloud-platform,google-cloud-pubsub,Google Cloud Platform,Google Cloud Pubsub,如果我要创建一个客户端桌面应用程序,我将试图找到一种可靠的方法来通知客户端应用程序需要从服务器查询的新数据。pubsub对这个有用吗?我看到的关于它的大多数文档似乎都集中在服务器到服务器的通信上,如果这对服务器到客户端的通知很有效的话,就有点模棱两可了 如果它能够工作,我是否能够正确地验证订阅者,以限制他们可以订阅的主题?此应用程序可能会被任何人下载,我需要确保用于一个客户端的信息不会最终落入另一个客户端手中。如果您想向internet上的任何人打开此应用程序,你不能依赖IAM服务,它只能与Go

如果我要创建一个客户端桌面应用程序,我将试图找到一种可靠的方法来通知客户端应用程序需要从服务器查询的新数据。pubsub对这个有用吗?我看到的关于它的大多数文档似乎都集中在服务器到服务器的通信上,如果这对服务器到客户端的通知很有效的话,就有点模棱两可了


如果它能够工作,我是否能够正确地验证订阅者,以限制他们可以订阅的主题?此应用程序可能会被任何人下载,我需要确保用于一个客户端的信息不会最终落入另一个客户端手中。

如果您想向internet上的任何人打开此应用程序,你不能依赖IAM服务,它只能与Google identity一起工作->你不能要求你的用户拥有Google帐户,用户体验会很糟糕

因此,您不能使用IAM服务来保护PubSub访问,也不能使用PubSub,因为任何人都可以访问它

在您的用例中,第一步是要求用户注册(创建帐户、验证电子邮件、可能使用付款方式等)。然后,你有了身份,但由你管理,而不是由IAM管理。您知道哪些消息是针对该用户的,哪些不是


如果您希望“实时”收到通知,我建议您使用长轮询方法或流式传输将数据推送到用户。要做到这一点,我建议您对此进行研究。

云发布/订阅对于这个用例来说不是一个好的选择。首先,请注意,每个主题和项目仅限于10000个订阅。因此,如果您打算拥有更多,您将用完订阅。其次,请注意,订阅仅接收创建订阅后发布的消息。如果您只需要在用户访问网站后发布的消息,这可能没问题。但是,结合这两个问题,您需要考虑订阅的生存期。当用户注销时,它们是否会被删除?如果没有,当用户返回时,您是否希望他们获得自上次访问以来发布的所有消息

此外,如评论中所述,还存在身份验证问题。您的客户端应用程序必须具有凭据才能订阅。这将要求您将这些凭据泄漏到客户端代码中,这可能是应用程序中的一个漏洞


设计用于发送此类通知的服务是。

请查看上的教程,看看这是否是您正在寻找的内容。1)客户端安全吗?您可以授予他们一个服务帐户以供使用吗?2) 客户是您公司(团队成员)的一部分还是公众?在您的问题中添加有关环境、客户端数量和安全要求的更多信息。>客户端是否安全?您能否授予他们一个服务帐户以供使用?不可以。这将是一个桌面应用程序,任何人都可以下载它。>客户是您公司(团队成员)的一部分还是公众?一般公众我将编辑我的上述问题。您的更新未提供提供基于事实的答案所需的详细程度。如果没有强大的安全性和授权,您不希望向公众提供任何谷歌云服务。黑客会在一夜之间将您的信用卡推到极限,或消耗您的API配额,从而导致您的其他用户拒绝服务。@JohnHanley那么我可以提供什么信息呢?我们将要求用户进行授权,只有在用户登录后才需要将数据推送到客户端。根据jabbson在上面发布的内容,我们不需要用户发布任何内容,只需监听新事件,就可以知道他们何时应该查询服务器。我们计划使用cloud run,但这些应用程序可能会保持24/7。使用这种方法进行长时间轮询听起来可能非常昂贵。我只需要通知客户机服务器上发生了更改,他们需要查询服务器以获取更新。每个事件的大小都非常小,可能会为每个事件发送一个整数值。您知道PubSub的最小计费消息大小是1Kb吗?不确定PubSub解决方案的价格是否更有趣Firebase云消息服务适用于android、ios和浏览器应用程序。它不适用于桌面应用程序。除此之外,我认为你的回答提出了一些正确的观点。