无法使用node-xmpp客户端连接到GCM

我正在尝试使用node-xmpp运行gcm服务器,但是xmpp客户端似乎根本没有打开,并在超时后closures。

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在线”。 如何检查xmpp是否连接,以及无法打开?

我得到了同样的问题,发现Connection.startStream()从来没有被调用,虽然套接字已成功打开。

这是我的拉请求: https : //github.com/node-xmpp/node-xmpp-client/pull/61

直到它被合并,你可以使用我的叉子,它应该为GCM工作: https : //github.com/Riplexus/node-xmpp-client

我跟随这从谷歌组 ,它为我工作。 对于超时,你可以尝试xmppClient.connection.socket.setTimeout(0)xmppClient.connection.socket.setKeepAlive(true,10000)不要忘记在谷歌控制台白名单服务器IP。

我已经放弃了使用node-xmpp和game smack客户端的希望。 可悲的是,它没有工作,但我得到了一个错误,说我的项目没有列入白名单。 当项目被列入白名单时,它可以接收来自Android设备的消息,这正是我所需要的,并且是我直接进入CCS(XMPP)的唯一原因。 没有白名单,就不可能使用CCS(XMPP)将消息发送到Android设备。 为了使用HTTP方法,项目不需要被列入白名单,但是仅能够发送消息的限制。 我已经注册了上游的GCM,但还没有收到回复。

https://services.google.com/fb/forms/gcm/