我正在尝试使用node-xmpp运行gcm服务器,但xmpp客户端似乎根本没有打开并在超时后关闭。
var xmpp = require('node-xmpp-client');
var options = {
type: 'client',
jid: 'fake-project-123@gcm.googleapis.com',
password: 'ApiKeyHere',
port: 5235,
host: 'gcm.googleapis.com',
legacySSL: true,
preferredSaslMechanism : 'PLAIN'
};
console.log("Creating XMPP Application");
var cl = new xmpp.Client(options);
cl.on('online', function()
{
console.log("XMPP Online");
});
其他代码被省略了。在控制台中,我永远不会看到“XMPP Online”。 如何检查xmpp是否连接,以及无法打开的位置?
答案 0 :(得分:2)
我遇到了同样的问题,发现虽然套接字已成功打开,但从未调用过Connection.startStream()。
这是我的拉动请求: https://github.com/node-xmpp/node-xmpp-client/pull/61
在合并之前,你可以使用我的fork,它应该适用于GCM: https://github.com/Riplexus/node-xmpp-client
答案 1 :(得分:0)
我遵循了这个from gcm google groups,它对我有用。 对于超时,你可以尝试 xmppClient.connection.socket.setTimeout(0) xmppClient.connection.socket.setKeepAlive(true,10000) 不要忘记在Google控制台中将服务器IP列入白名单。
答案 2 :(得分:0)
我放弃了尝试使用node-xmpp和game smack客户端的希望。可悲的是它没有用,但我确实收到一个错误,说我的项目没有列入白名单。当项目列入白名单时,它可以从Android设备接收消息,这正是我需要的,也是我直接进入CCS(XMPP)的唯一原因。如果没有白名单,则无法使用CCS(XMPP)将消息发送到Android设备。为了使用HTTP方法,项目不需要列入白名单,但仅限于能够发送消息。我已经注册了上游GCM,但尚未收到回复。