問題は簡単なはずですが、私はその底に到達できません。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を取得しているのか分かりませんが、それは何ですか?
これは、A @ 123ではなくAに何かを送信した場合にのみ発生します。実際にサーバに送信しているXMLをチェックします(Smack/Openfireがストリーム検査を提供しない場合はWiresharkを使用します)。 – MattJ
良いマット。以前はWiresharkを考えなかった。 @IPをハードコードした場合、SmackがAに送信する方法を理解できませんでした。私はあなたに結果を知らせます。 – Adam
Wiresharkは関連情報を提供していません。私はそれがポート5222に接続しているからだと信じています。XMLは実際のXMLの代わりに一連の数値を返します。それをどうやって得るかわからない。 – Adam