2015-02-06 34 views
0

我使用的客戶端和客戶端將通過HornetQ和Netty創建一個連接到服務器如何知道在JMS中使用的套接字?

每1分鐘,服務器將發送心跳和客戶端(誰subscribe)將收到此消息。在郵件中,我包含了服務器的根IP地址

如果此服務器只有一個網卡(NIC),則一切正常。

但是在這種情況下,服務器有2個或更多的網卡。我遇到了問題。

在消息被客戶端收到時,服務器的IP不正確。

我用InetAddress.getLocalHost().getHostAddress()去根IP,我知道錯在這種情況下,服務器有2個網卡

所以,你可以給我一些建議,我怎麼能在這裏得到正確的IP?

有些人說我們可以參考「用於獲取正確IP的套接字」。你知道我們怎麼能得到它嗎?

+0

與論壇網站不同,我們不使用「謝謝」或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be - 從帖子中刪除)。順便說一句,它是「提前致謝」,而不是「感謝先進」。 – 2015-02-11 06:44:05

回答

0

首先我不明白你爲什麼需要IP地址,如果你想實現心跳,那不是必需的,如果你用過org.hornetq.jms.client.HornetQJMSConnectionFactory它會自動做心跳檢查。如果您有兩臺服務器並想區分不同的服務器,請使用clientId並將其發送到消息頭中,並且在偵聽時您可以選擇基於clientId的消息或其他方法使用同步jms調用。

相關問題