好的,这个问题应该很简单,但我无法彻底解决它。
我有两个用户A和B。
他们的JID(Jabber ID)分别为A@123和B@123,其中123是服务器的IP地址。
我使用以下代码从A发送消息到B:
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);
我已经硬编码了IP,这样我就可以100%确定在昵称末尾添加"@123",以避免出现错误的JIDs。
因此,A@123向B@123发送msgObj。这是我理解XMPP消息传递的方式。你不能从A->B发送,而必须是A@123 -> B@123。
然而,我的服务器似乎持有不同的观点。它不断告诉我以下错误:
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
在Openfire服务器的A和B的名单中,他们将彼此作为联系人,并使用正确的JIDs(username@123)。
有人可以提供一些见解吗?我很迷茫。
编辑
我正在尝试使用Wireshark捕获发送到和从Openfire服务器接收到的XML,以确定消息的接收者是否被正确命名(A@123而不是A)。
在使用Wireshark时,我收到了以下传输的XML:
\302\3469\223\341\3429\000\000\000\000\377\377
我已经禁用了SSL,以不安全的方式连接。我不确定为什么我收到了SSL类型的XML,请问这是否正确?