1

我是 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;

谢谢

4

1 回答 1

0

OP here:问题是因为路由在到达时终止了 XMPP 操作res.render。从路由中删除 XMPP 代码后,我得到一个XMPP authentication failure,这很可能是由于不正确的 jid/密码。项目需求发生了变化,我不再需要上游消息传递,所以我不会尝试修复身份验证失败。感谢您的回复

于 2015-06-16T18:01:48.813 回答