如何将 Google Cloud Platform Pub/Sub 消息推送到 C# 桌面应用程序

Posted

技术标签:

【中文标题】如何将 Google Cloud Platform Pub/Sub 消息推送到 C# 桌面应用程序【英文标题】:How to push Google Cloud Platform Pub/Sub message to C# desktop application 【发布时间】:2020-07-19 07:45:10 【问题描述】:

我正在尝试创建可以接收 Google Cloud Platform Pub/Sub 消息的 C# 桌面应用程序。我无法使用 Push 方法(https://cloud.google.com/pubsub/docs/subscriber#push_pull)。我从文档中了解到的内容-发布消息时,Pub/Sub 将 HTTP 请求推送到订阅者的端点。然后端点发回 HTTP 成功状态码。 这就是我创建订阅者的方式:

        TopicName topicName = new TopicName("test-project-123", "myTopicName");
        SubscriberServiceApiClient subscriberService = await SubscriberServiceApiClient.CreateAsync();
        SubscriptionName subscriptionName = new SubscriptionName("test-project-123", "mySubscriberName");
        subscriberService.CreateSubscription(subscriptionName, topicName, pushConfig: null, ackDeadlineSeconds: 60);

在这里,我假设,pushConfig 是我指定 Pub/Sub 应向其发送请求的端点,我的程序作为回报应向其发送成功状态代码。我不明白的是我的桌面应用程序如何知道请求被推送到这个端点,以及它必须如何响应它?我相信答案应该很简单,但是 Web 开发对我来说是一个全新的事物,所以我觉得这个解决方案很难弄清楚。任何想法或代码示例将不胜感激

【问题讨论】:

你看到这个文档了吗(cloud.google.com/pubsub/docs/pull#asynchronous-pull)? 【参考方案1】:

要使用 Push,您需要设置一个托管 URL 的服务。由您决定如何将您的服务连接到您的桌面应用程序。我认为设置服务以接受 Cloud Pub/Sub Pushes 的最简单方法是使用 Cloud Run,这是一种用于托管服务的 GCP 服务:https://cloud.google.com/run/docs/tutorials/pubsub

另一种选择是使用 Cloud Functions 设置 Pub/Sub 触发器:https://cloud.google.com/functions/docs/calling/pubsub

或 Firebase 函数: https://firebase.google.com/docs/functions/pubsub-events

一般来说,Cloud Pub/Sub 可能不是向您的桌面应用程序发送通知的正确工具。为此,您可能需要考虑 Firebase 云消息传递:https://firebase.google.com/docs/cloud-messaging/

您可以使用端到端的 FCM,也可以将消息从 Cloud Pub/Sub 桥接到 FCM。

【讨论】:

以上是关于如何将 Google Cloud Platform Pub/Sub 消息推送到 C# 桌面应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Google Cloud Platform Pub/Sub 消息推送到 C# 桌面应用程序

如何将本地训练的 TensorFlow 图形文件部署到 Google Cloud Platform?

如何从 google-cloud-platform vminstance 中的 pubsub 回调函数调用全局变量?

将 Google Cloud Platform 的错误报告与 ExpressJS 一起使用

如何让 PySoundfile 在 Google Cloud Platform 柔性环境中运行? [关闭]

使用 Google Cloud Platform 运行 Websocket