Node.js XMPP客户端通过Heroku实现不能连接

我已经在Node.js中实现了一个XMPP客户端(使用node-xmpp模块)来发送和接收来自Android客户端的通知:

var xmpp = require('node-xmpp'); var options = { type: 'client', jid: process.env.GCM_PROJECT_ID+'@gcm.googleapis.com', password: process.env.GCM_PASSWORD, port: 5235, host: 'gcm.googleapis.com', legacySSL: true, preferred : 'PLAIN' }; var cl = new xmpp.Client(options); cl.connection.socket.setKeepAlive(true, 10000); 

这就是'在线'事件得到处理的地方:

 cl.on('online', function() { console.log("online"); }); 

当本地启动Node.js服务器时,一切正常,我可以接收来自Android客户端的上游消息,并向Android客户端发送下游消息。 当我的networking服务器在Heroku dyno上运行时,“在线”事件从不被触发,因此XMPP客户端不能连接,我不能接收上游信息,也不能发送下游信息。

我的实现基于以下要点: https ://gist.github.com/jamesvnz/6756208作者提供了示例node.js服务器代码来实现XMPP服务器,该服务器将与Android的Google Cloud Messaging(GCM)设备云“消息function – CCS。

所以,我不明白为什么XMPP客户端在Heroku上运行时不能连接,但在本地主机上完美工作。

Xmpp在Heroku上不起作用:(我不知道为什么,但在网站上说得很清楚