【发布时间】:2015-06-12 16:18:20
【问题描述】:
我是 node.js 和 XMPP 的新手,但不是 Javascript 或 GCM。我无法使用node-xmpp 接收上游消息,并且没有调用任何回调,甚至没有调用error。我查看了其他 SO 线程,但没有一个解决方案有效。这是我的整个路线:
var express = require('express');
var router = express.Router();
var xmpp = require('node-xmpp');
router.get('/', function(req, res, next) {
var options = {
type: 'client',
jid: 'project-12345@gcm.googleapis.com',
password: 'apiKey12345',
port: 5235,
host: 'gcm.googleapis.com',
legacySSL: true,
preferredSaslMechanism : 'PLAIN'
};
// this prints correctly
console.log('Creating xmpp app');
var cl = new xmpp.Client(options);
cl.connection.socket.setTimeout(0);
cl.connection.socket.setKeepAlive(true, 10000);
// None of these callbacks are called
cl.on('online', function() {
console.log('online');
});
cl.on('connection', function() {
console.log('online');
});
cl.on('authenticate', function(opts, cb) {
console.log('authenticated');
});
cl.on('error',function(e) {
console.error(e);
});
cl.on('stanza', function(stanza) {
console.log(stanza);
});
res.render('index', { title: 'GCM upstream test' });
});
module.exports = router;
谢谢
【问题讨论】:
-
有两个问题:1)您在 express.js 服务器中运行 XMPP 客户端,这意味着 XMPP 客户端套接字仅在您向 / 发出请求后才会被初始化,而不是在您启动服务器后. 2) 我在没有 express.js 的情况下进行了测试,并且 node-xmpp-client 中的代码不起作用。我尝试运行 DEBUG=xmpp:client:session,xmpp:client node ccs.js 以从库中获取一些日志记录/调试,但只得到“Creating xmpp app xmpp:client:session start socket connection +0ms” ,然后我从应用程序发送了一条上游消息,但在服务器上我什么也看不到。
-
我认为stackoverflow.com/questions/22566024/… 是一个相关问题。您必须调试 node-xmpp-client 库并确定问题所在。
标签: javascript node.js xmpp google-cloud-messaging node-xmpp