无法连接到 Firebase 以进行云消息传递
Posted
技术标签:
【中文标题】无法连接到 Firebase 以进行云消息传递【英文标题】:Could not connect to Firebase for Cloud Messaging 【发布时间】:2016-07-01 18:05:41 【问题描述】:我正在尝试使用 Node.js 中的 xmpp 协议连接到 Firebase Cloud Messaging Server (CCS)。到目前为止,我没有成功。
我正在使用 node-xmpp-client 库,它给了我以下错误:
[Error: connect ETIMEDOUT 64.233.191.188:5235]
code: 'ETIMEDOUT',
errno: 'ETIMEDOUT',
syscall: 'connect',
address: '64.233.191.188',
port: 5235
这是我的代码:
var Client = require('node-xmpp-client');
var client = new Client(
jid: '<my sender id>@gcm.googleapis.com',
password: '<my server key>',
host: 'fcm-xmpp.googleapis.com',
port: 5235
);
client.connection.socket.on('error', function (error)
console.log("socket error");
console.error(error);
process.exit(1);
);
client.on('online', function (data)
console.log('Connected as ' + data.jid.local + '@' + data.jid.domain + '/' + data.jid.resource);
);
client.on('error', function (err)
console.log("server error");
console.error(err);
process.exit(1);
);
【问题讨论】:
对此我不确定,但可能与您的jid
(gcm...) 和host
(fcm...) 有关。我认为它应该是相同的fcm?可以试试吗?
@intj 感谢您的评论,但它也失败了......
只使用您的jid
的发件人ID 怎么样?删除@gcm.googleapis.com
?我想我记得一个类似的帖子,但我不完全确定。
@intj 感谢您的跟进。但它也没有用
嘿@JamshidAsadzadeh 怎么样?您是否仍然遇到此错误?您还可以验证您使用的是什么类型的 API 密钥吗?
【参考方案1】:
尝试使用 Client.Client 并添加 legacySSl 和 preferredSaslMechanism
const XMPP = require('node-xmpp-client');
this._client = new XMPP.Client(
jid: `$config.id@gcm.googleapis.com`,
password: config.key,
port: config.port,
host: config.host,
legacySSL: true,
preferredSaslMechanism: 'PLAIN'
);
这对我有用
【讨论】:
以上是关于无法连接到 Firebase 以进行云消息传递的主要内容,如果未能解决你的问题,请参考以下文章
无法将iOS CriticalAlert发送到Firebase云消息传递
Firebase 云消息传递 REST API Spring