XMPP和自定义Openfire与静态IP

时间:2013-10-04 17:10:27

标签: java xmpp openfire

我在我的电脑上安装了openfire服务器(名称:duong2179-pc,静态公共IP:20x.25x.xxx.xxx)。我还安装了Spark并注册了2个帐户:test1和test2。我使用Smack开发了一个小型桌面Java应用程序。

我在我的应用程序上使用Spark和test2上的test1,两个帐户都采用以下格式:test@20x.25x.xxx.xxx,然后我遇到了麻烦:test1(在Spark上)可以向test2发送消息(Java应用程序) )但test2无法发回。以下是问题的根源:

sendMessage(message, "test1@20x.25x.xxx.xxx);

我试着改变一点,比如

sendMessage(message, "test1@duong2179-pc");
然后它运作良好。

那么这里的不同点是什么?

请注意,当我在Spark中使用时,我使用的服务器为20x.25x.xxx.xxx而不是duong2179-pc

1 个答案:

答案 0 :(得分:1)

发送xmpp消息时,接收方的JID(Jabber ID)由三部分组成, 用户信息(test1),xmpp域(duong2179-pc)和可选资源。

user@xmpp.domain/resource

此域名,IS NOT,主机地址,它是您服务器上配置的xmpp域。

安装openfire时,默认域就是安装它的机器的主机名。因此,xmpp域和主机名恰好相同,这就是为什么第二种情况有效,但不是第一种情况。

如果您在服务器上打开管理控制台并将域名更改为其他内容,则两个示例行都​​不起作用。