2013-10-04 34 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地址時會有什麼影響?並且哪一個是優選的 –