2010-12-27 16 views
3

問題は簡単なはずですが、私はその底に到達できません。XMPP(Smack)メッセージを送信する

私は2人のユーザー& B

彼らのJIDのこの例では123がサーバのIPである123 @ @ 123とBになりました。

私は次のコードを使用してA-> Bからのメッセージを送信している:私は、私が「123 @」を付けることを100%確信しているように、私はIPをハードコードしまし

chat = chatmanager.createChat(username, 
    new MessageListener() { 
     public void processMessage(Chat chat, Message message) {}}); 
    String sendUsername = username + "@123"; 
    Message msgObj = new Message(sendUsername, Message.Type.chat); 
    msgObj.setBody(message); 

    chat.sendMessage(msgObj); 

をニックネームの最後には不正なJIDはありません。

だから、A @ 123はmsgObjをB @ 123に送信します。これがXMPPメッセージングがうまく動作することを理解した方法です。あなたはA→Bから送ることはできませんが、A @ 123→B @ 123でなければなりません。

ただし、私のサーバーはそうでないと思われるようです。これは、継続的に次のエラーを私に知らせる:AとOpenfireサーバ上のBの名簿の両方で

2010.12.27 19:02:52 [org.jivesoftware.openfire.session.LocalOutgoingServerSession 
.createOutgoingSession(LocalOutgoingServerSession.java:258)] Error trying to 
connect to remote server: A(DNS lookup: A:5269) 
java.net.UnknownHostException: A 

は、彼らが正しいたJID(123 @ユーザー名)との接点としてお互いを持っています。

誰かが洞察力を提供できますか?道に迷いました。

編集

私は、メッセージの受信者が(代わりにAの123 @ A)適切に命名されるかどうかを判断するためにOpenfireサーバへと送信されるからXMLをキャッチするためにWiresharkのを使用しようとしています。

のWiresharkを使用すると、私はXMLが転送されるように、これを受信した:

\302\3469\223\341\3429\000\000\000\000\377\377 

Iが無効SSL、Iは非セキュア接続しています。私はなぜSSLタイプのXMLを取得しているのか分かりませんが、それは何ですか?

+0

これは、A @ 123ではなくAに何かを送信した場合にのみ発生します。実際にサーバに送信しているXMLをチェックします(Smack/Openfireがストリーム検査を提供しない場合はWiresharkを使用します)。 – MattJ

+0

良いマット。以前はWiresharkを考えなかった。 @IPをハードコードした場合、SmackがAに送信する方法を理解できませんでした。私はあなたに結果を知らせます。 – Adam

+0

Wiresharkは関連情報を提供していません。私はそれがポート5222に接続しているからだと信じています。XMLは実際のXMLの代わりに一連の数値を返します。それをどうやって得るかわからない。 – Adam

答えて

2

この問題に対する答えは、見落とされていたものです。コードの最初の行で

chat = chatmanager.createChat(username, new MessageListener() { 
      public void processMessage(Chat chat, Message message) {} 
     }); 

私は、変数「ユーザー名」を行っていないが、適切なIP拡張を持っています。だから、単に代わりに

「123 @ A」の「」トップに「sendUsername」を移動し、「sendUsername」に「ユーザ名」に変更されたすべてが素晴らしい:)

愚かなミスを働くことができます。

1

IPアドレスを使用することは、あなたが思うよりもずっと混乱しています。

OpenFireが誤って設定されている可能性があります。そのため、IPアドレスは有効なホスト名ではありません。管理コンソールの[システムのプロパティ]で、xmpp.domainプロパティがIPアドレスに設定されていることを確認します。

+0

Joe、xmpp.domainは123に設定されています(例で使用していたのと同じIPシステムに従います)。 – Adam

関連する問題