Jabber会議に接続するにはどうすればよいですか?メッセージを送受信します。オンラインユーザーのリストを取得します。
1 に答える
localhost
prosody.imを使用していくつかのテストを行いました。私には2人のクライアントがいました:
alfred1
:通常はXMPPクライアントalfred2
:私のボット
MUCを作成しましalfred@conference.localhost
た。
最初にXMPPclient(alfred1
)からチャネルに接続し、次にボットを実行すると、bot(alfred2
)からテストメッセージを受信します。alfred1
また、XMPPクライアントからメッセージを送信すると、コンソールからチャットメッセージを受信します。
var xmpp = require('node-xmpp'),
sys = require('sys'),
jid = 'alfred2@localhost',
password = '1234',
room_jid = 'alfred@conference.localhost',
room_nick = 'alfred2',
conn = new xmpp.Client({
jid : jid,
password : password,
});
conn.on('online', function () {
console.log('online');
//var elm2 = new xmpp.Element('presence', { from: jid, to: 'alfred@conference.localhost'}).c('x', {'xmlns': 'http://jabber.org/protocol/muc' }).up();
conn.send(new xmpp.Element('presence', { to: room_jid +'/' + room_nick }).
c('x', { xmlns: 'http://jabber.org/protocol/muc' })
);
conn.send(new xmpp.Element('message', { to: room_jid, type: 'groupchat' }).
c('body').t('test')
);
});
conn.on('stanza', function(stanza) {
sys.puts(stanza);
});
conn.on('error', function(e) {
sys.puts(e);
});
後でコードを少し改善しようとするかもしれませんが、これでうまくいくと思います...
jabber.orgから:
ただし、質問やコメントがある場合は、いつものようにXMPPまたはHTTP経由でjabber@conference.jabber.orgチャットルームに参加してください。
jabber@conference.jabber.orgに接続するという意味ですか?
そのためのMUC仕様を調べる必要があると思います。node-xmppだけで可能だと思いますが、node-xmppはかなり低レベルのライブラリです。npmjs.orgの検索を使用してMUCをサポートするモジュールを探しましたが、まだ機能させることができませんでした。MUCに関するMetaJackのソースコードが役立つと思います。これは、週末に実装するのが楽しいプロジェクトになると思います。
すぐに始めたい場合は、おそらく(おそらく誰かがnode-xmppにMUCを持っていますか?) MUCをサポートするSmack(Java)を見てください。