2 つのクライアントが互いにチャットできるチャット アプリケーションに node-XMPP を使用しています。問題は、あるクライアントからサーバーにデータを取得していることですが、サーバーから別のクライアントにデータを送信する方法がわかりません。
私のサーバーコードは次のとおりです。
'use strict';
var xmpp = require('../index')
, c2s = null
, Client = require('node-xmpp-client')
, ltx = require('node-xmpp-core').ltx
, util = require('util');
var startServer = function(done) {
c2s = new xmpp.C2SServer({
port: 5222,
domain: 'localhost',
preferred: 'PLAIN'
})
c2s.on('connect', function(client) {
c2s.on('register', function(opts, cb) {
console.log("REGISTER");
cb(true);
});
client.on('authenticate', function(opts, cb) {
if ('secret' === opts.password) {
return cb(null, opts)
}
console.log('FAIL')
cb(false)
});
client.on('online', function() {
console.log('ONLINE')
});
client.on('stanza', function(stanza) {
console.log('STANZA', stanza.root().toString())
var from = stanza.attrs.from
stanza.attrs.from = stanza.attrs.to
stanza.attrs.to = from
client.send(stanza)
});
client.on('disconnect', function(jid) {
console.log("client DISCONNECT=>");
});
});
if (done) done()
};
startServer(function() {})
私のクライアントコードは次のとおりです。
var Client = require('../index.js')
,util = require('util');
var client = new Client({
jid: process.argv[2],
password: process.argv[3],
host :"localhost",
port:5222,
reconnect :true
});
client.on('online', function() {
console.log('online');
});
client.on('error',function(err){
console.log("error=>"+err);
});
client.on('stanza', function(stanza) {
console.log('Incoming stanza: ', stanza.toString())
});
client.on('disconnect',function(){
console.log("server diconnected");
});
別のクライアントからデータを送信すると、データがサーバーに送信されますが、サーバーはクライアントにデータを送信していません。
前もって感謝します。