javascript - Firebase Cloud Messaging - 可扩展的应用服务器(同时连接)

标签 javascript firebase firebase-cloud-messaging node-xmpp

我正在创建一个 iOS 应用程序,它在很大程度上依赖于用户与通知的交互。当用户与通知交互时,他们自己和他们的关注者将立即收到通知。

为此,我决定使用 Firebase 云消息传递,因为我已经在使用其他 Firebase 服务。

我的应用程序服务器是使用 Node.js 用 TypeScript 编写的,并且 node-xmpp-server .根据the documentation ,没有 FCM Java SDK,因此 Node.js 是合乎逻辑的选择。

当我的服务器运行时,它会创建一个 Client 并监听来自 FCM 的传入节。类似这样的东西:

var Client = require('node-xmpp-client')

var client = new Client({
    jid: 'user@example.com',
    password: 'password'
})

client.on('online', function() {
    console.log('online')
})

client.on('stanza', function(stanza) {
    console.log('Incoming stanza: ', stanza.toString())
})

对于整个服务器,只有一个 Client 监听来自 FCM 的所有传入节。

我有很多问题无法在 Firebase 文档中找到。

  1. 同步节会进入我的服务器吗?还是 Firebase 会确保一次只发送和处理一个?
  2. 如果同时出现节,会发生什么?有些人会迷路吗?
  3. 我是否需要重组我的服务器来处理同时的节?如果是这样,当我使用 FCM 所能做的就是听节时,我该怎么做?

谢谢!

最佳答案

  1. 您将同时收到节
  2. 你应该处理它们并确认它们
  3. 是的。您需要使用多线程,例如 1 个线程正在接收消息,而另一个(或多个)线程正在处理它们并将 ACK 排队。如何执行此操作取决于您的图书馆/语言。

关于javascript - Firebase Cloud Messaging - 可扩展的应用服务器(同时连接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42252144/

相关文章:

javascript - 由于 jquery 脚本,Bootstrap 折叠按钮不起作用

javascript - 如何递归添加未知的原始元素?

javascript - 错误 : 3 INVALID_ARGUMENT: Cannot convert an array value in an array value in Firestore admin

android - 使用 Firebase 通知作为通知图标的灰色方 block

node.js - 提供的注册 token 无效。确保它与客户端应用程序通过 FCM 注册收到的注册 token 匹配

javascript - node.js 等待任务完成

javascript - 如何向具有不同父标签的子标签添加/删除类

firebase - Firebase 通知主题的限制

firebase - 仅获取 FireBase 集合中 ID 与单独集合中的文档匹配的文档

android - 不会显示 Firebase 推送通知