如何在不使用云功能的情况下使用Google PubSub检索计费更新?我目前正在使用下面的代码,但它显示onPublish不存在:

const { PubSub } = require('@google-cloud/pubsub');
const pubsub = new PubSub('MyProjectID');



handleServerEvent = pubsub.topic(GOOGLE_PLAY_PUBSUB_BILLING_TOPIC)
  .onPublish(async (message) => {

  })

TypeError:pubsub.topic(...).onPublish不是函数

我正在使用Node.js,并希望对发布在主题上的事件做出react .

推荐答案

onPublish()方法是云函数API的一部分.您需要使用createSubscription()来获取Subscription对象,然后使用它来侦听新消息.try 以下操作:

const listenToTopic = async (topicName: string) => {
  const [sub] = await pubsub
    .topic(topicName)
    .createSubscription("subscriptionName");

  sub.on("message", (message) => {
    message.ack();
    console.log(`Received message: ${message}`);  
  });
};

// start listener
listenToTopic(GOOGLE_PLAY_PUBSUB_BILLING_TOPIC)

创建订阅后,您需要将createSubscription("subscriptionName")更改为subscription("subscriptionName")以监听传入的消息,因为订阅已经创建

Node.js相关问答推荐

使用HTTPS从NodeJS 17.9.1升级到18.0.0后,SignalR连接失败

根据我的测试,为什么在编写Varint代码方面,NodeJS要比Rust快这么多?

如何在Angular jest测试中调用Nodejs的垃圾收集? node v20的测试速度慢且内存泄漏

获取驱动器文件夹的直接子文件夹时出现问题

控制台显示一个长对象,我可以';每当我发布更新Mongoose数据库的请求时,我都不知道错误是什么,

验证器功能在mongoose 中不起作用

为什么即使数据库确实更新了,此 POST 也无法解析并返回 200 代码?

尽管 tsconfig 中提供了正确的路径,但仍出现找不到模块错误

密码加密的最佳实践是什么?

如何获取需要加载cheerio的网站部分数据?

try 在 Heroku 中部署 PRN 应用程序并获得 404

为什么在调用数据库调用时我的参数没有定义?

通过 npm 导入 Sass

React Native ios build:找不到 node

使用 MongoDB 更新嵌套数组

如何使用 cookie 创建 HTTP 客户端请求?

- configuration.output.path:提供的值public不是绝对路径!使用 Webpack

如何从 Node.js 应用程序Ping?

使用 Node-sass 缩小 CSS

将 expressjs 绑定到特定的 IP 地址