1

xmpp との春の統合を構成し、メッセージを他の jid に送信できます。メッセージを作成するには、次の方法を使用します。

Message<?> message = MessageBuilder.withPayload("Test Message").
        setHeader(XmppHeaders.TO, "pino@chiarottos-macbook-pro.local").
        build();
messageChannel.send(message);

チャット ルームを作成したいと思います。マルチ ユーザー チャット リクエストを含むメッセージを作成する方法を見つけようとしましたが、成功しませんでした。

何か助けはありますか?

使用: 「myroommmm」にXmppHeaders.TYPE設定して"groupchat"XmppHeaders.TO機能しません..xmppサーバーログ:

[info] <0.609.0>@ejabberd_c2s:open_session:1105 ({socket_state,gen_tcp,#Port<0.16208>,<0.608.0>}) Opened session for chiarotto@chiarottos-macbook-pro.local/resource 2016-04-12 15:55:40.987 [info] <0.609.0>@ejabberd_s2s:new_connection:406 New s2s connection started <0.611.0> 

[info] <0.611.0>@ejabberd_s2s_out:log_s2s_out:1253 Trying to open s2s connection: chiarottos-macbook-pro.local -> myroommmmme with TLS=false 2016-04-12 15:55:40.999 [info] <0.611.0>@ejabberd_s2s_out:open_socket:246 s2s connection: chiarottos-macbook-pro.local -> myroommmmme (remote server not found)

統合テストを実行しています

更新 2: 使用:

MultiUserChat multiUserChat = new MultiUserChat(xmppConnection,"prova");
        try {
            multiUserChat.join("soisdjdsoijds");
        } catch (XMPPException.XMPPErrorException e) {
            e.printStackTrace();
        } catch (SmackException e) {
            e.printStackTrace();
        }

次のエラーが表示されます。

remote-server-not-found
    at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:196)
    at org.jivesoftware.smackx.muc.MultiUserChat.enter(MultiUserChat.java:352)
    at org.jivesoftware.smackx.muc.MultiUserChat.join(MultiUserChat.java:516)
    at org.jivesoftware.smackx.muc.MultiUserChat.join(MultiUserChat.java:451)
    at radiosa.service.muc.MUCService.testRoom(MUCService.java:83)

(サーバーは正しく構成され、動作しています)

4

1 に答える 1

1

ChatMessageSendingMessageHandler、メッセージの送信専用に設計されています。

すべてのマルチユーザー チャット管理 (作成、参加、退出など) は、 経由で行う必要がありますorg.jivesoftware.smackx.muc.MultiUserChatManager

あなたはまだそこにメッセージを送信することができますがChatMessageSendingMessageHandler

  • XmppHeaders.TOヘッダーはroom、JavaDocs に従った名前である必要があります。

    * @param jid the name of the room in the form "roomName@service", where "service" is the hostname at which the
    *        multi-user chat service is running. Make sure to provide a valid JID.
    */
    public synchronized MultiUserChat getMultiUserChat(String jid) { 
    
  • そして、XmppHeaders.TYPEヘッダーは次の値である必要がありますMessage.Type.groupchat

于 2016-04-12T13:35:08.807 に答える