Ok, das Problem sollte trivial sein, aber ich kann nicht auf den Grund davon kommen.Senden XMPP (Smack) Nachricht
Ich habe zwei Benutzer A & B
Ihre JID ist für dieses Beispiel wird A @ 123 und B @ 123 sein, wo 123 die IP-Adresse des Servers ist.
Ich bin B mit dem folgenden Code eine Nachricht von A-> Senden:
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);
ich die IP fest einprogrammiert haben, so dass ich 100% sicher bin, dass ich die „@ 123“ anschließen an Das Ende des Nickname, also gibt es keine falschen JIDs.
So sendet A @ 123 msgObj zu B @ 123. So habe ich verstanden, dass XMPP-Messaging funktioniert. Das kann nicht von A-> B gesendet werden, aber es muss A @ 123 -> B @ 123 sein.
Allerdings scheint mein Server anders zu denken. Er informiert mich kontinuierlich von dem folgenden Fehler:
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
sowohl in der A- und B-Roster auf dem Server Openfire, sie haben sich gegenseitig als Kontakt mit den richtigen JIDs (username @ 123).
Kann jemand Einblick geben? Ich bin verloren.
bearbeiten
Ich versuchen Wireshark zu verwenden, um die XML zu und von dem Openfire Server, wenn der Empfänger der Nachricht korrekt benannt wird, um zu bestimmen geschickt zu fangen (A @ 123 statt A).
Bei Wireshark, erhielt ich dies als der XML übertragen werden:
\302\3469\223\341\3429\000\000\000\000\377\377
ich deaktiviert SSL habe, habe ich un-sicher angeschlossen ist. Ich bin nicht sicher, warum ich XML vom SSL-Typ bekomme, ist das was es ist?
Dies kann nur dadurch verursacht werden, dass Sie etwas an A anstatt an A @ 123 senden. Überprüfen Sie den XML-Code, den Sie tatsächlich an den Server senden (mit Wireshark, wenn Smack/Openfire keine Stream-Überprüfung bereitstellt). – MattJ
Klingt gut Matt.Ich habe noch nicht an Wireshark gedacht. Ich konnte nicht verstehen, wie Smack nach A senden würde, wenn ich das @IP fest programmiert hätte. Ich werde Sie die Ergebnisse wissen lassen. – Adam
Wireshark liefert keine relevanten Informationen. Ich glaube, das liegt daran, dass ich an Port 5222 anschließe. Das XML gibt mir eine Reihe von Zahlen anstelle von tatsächlichem XML. Ich bin mir nicht sicher, wie ich daran vorbeikommen soll. – Adam