2013-10-04 40 views
0

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

我在测试1 loged关于Spark和TEST2在我的应用程序,这两个帐户在以下格式:[email protected],然后我得到了麻烦:TEST1(上星火)可以发送消息给TEST2(在Java应用程序),但test2无法发回。这是问题的根源:

sendMessage(message, "[email protected]); 

我试图改变一点点,如

sendMessage(message, "[email protected]"); 

那么它运作良好。

那么这里有什么不同?

请注意,当我在星火loged我使用的服务器作为20x.25x.xxx.xxx不duong2179-PC

回答

1

当您发送XMPP消息,接收器的JID(Jabber的ID)是由三个部分, 用户信息(test1),xmpp域(duong2179-pc)和一个可选资源。

[email protected]/resource 

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

刚刚发生的情况是,安装openfire时的默认域是安装它的机器的主机名。因此,xmpp域名和主机名称恰好相同,这就是第二种情况起作用的原因,但不是第一种情况。

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

+0

我看到了。我将域名更改为20x.25x.xxx.xxx,现在它们都运行良好。 –

+0

但是什么应该是域名,当设置为IP地址时会有什么影响?并且哪一个是优选的 –