好的,问题应该是微不足道的,但我无法深入了解它。
我有两个用户 A 和 B
他们在本例中的 JID 将是 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”,因此没有不正确的 JID。
所以 A@123 将 msgObj 发送给 B@123。这就是我理解 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 的花名册中,他们以正确的 JID(用户名@123)作为联系人。
谁能提供一些见解?我迷路了。
编辑
我正在尝试使用 Wireshark 捕获发送到 Openfire 服务器和从 Openfire 服务器发送的 XML,以确定消息的收件人是否正确命名(A@123 而不是 A)。
使用 Wireshark 后,我收到了正在传输的 XML:
\302\3469\223\341\3429\000\000\000\000\377\377
我禁用了 SSL,我的连接不安全。我不确定为什么我会得到 SSL 类型的 XML,是这样吗?