是否可以在前端使用 Google Pub/Sub (React)

Is using Google Pub/Sub possible on the frontend (React)

我对严格来说不是前端的东西还很陌生,所以在阅读了 Google pub/sub 文档并进行了一些搜索后,我不清楚是否将它与 React 一起使用是可能的。

我的用例是我(假设)一次有成千上万的人在我的网页上,所有需要同时被告知发生了一些外部事件(消息会很小)。

我知道 Google Firestore 具有侦听器功能,但根据此规范,它不再属于免费层使用范围。我见过允许 Google Pub/Sub 与物联网设备一起使用的库,所以我很困惑为什么我找不到任何关于在浏览器中使用它的资源。

在前端创建云 Pub/Sub 订阅者将是一种反模式,原因有几个。首先,quota limits 每个主题只允许 10,000 个订阅。由于您说网页上一次有成千上万的人,因此您将无法为这种情况创建足够的订阅。此外,当用户访问该网站时创建的订阅将无法收到创建订阅之前的任何通知; Cloud Pub/Sub 仅保证成功创建订阅后发布的消息的传递。最后,您会遇到安全和身份验证问题。为了从客户端启动订阅者,您需要向它传递它可以使用的凭据。如果您为每个网页查看者使用单独的凭据,那么您必须即时创建这些凭据并在用户消失时撤销它们。如果您对所有订阅者使用相同的凭据,那么一个订阅者可能会拦截另一个订阅者的提要。

总体而言,Cloud Pub/Sub 专为 torrents 用例而设计:更少的 feeds 和大量的数据必须由更少的订阅者处理。您所说的是 trickles 用例:需要在具有单独 ACL 的大量订阅者之间分发少量消息。 Firebase Cloud Messaging 是为后一种情况设计的产品。

虽然云 Pub/Sub 确实在 Google Cloud IoT 的路径上,但它用于发布端:许多设备将其事件发送到订阅者可以处理的主题。请注意,这些来自设备的消息不会直接进入云端 Pub/Sub;他们通过云物联网服务器,该服务器将消息发布到云 Pub/Sub。设备身份验证是通过云物联网完成的,而不是通过云 Pub/Sub 主题的权限。向 IoT 设备发送消息不是使用 Cloud Pub/Sub。