Firebase云消息传递 - 可扩展的App服务器(同时连接)

时间:2017-02-15 14:30:05

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

我正在创建一个非常依赖用户与通知交互的iOS应用。当用户与通知进行交互时,他们自己及其关注者将立即得到通知。

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

我的应用服务器使用Node.js和node-xmpp-server以TypeScript编写。根据{{​​3}},没有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做的所有事情都是在听stanzas时,我该怎么做呢?
  4. 谢谢!

1 个答案:

答案 0 :(得分:1)

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