2

Jabber会議に接続するにはどうすればよいですか?メッセージを送受信します。オンラインユーザーのリストを取得します。

4

1 に答える 1

6

localhostprosody.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)を見てください。

于 2011-07-08T12:24:16.133 に答える