我有一個與其他應用程序/服務器交談的Java服務器應用程序。它還必須代表多個用戶與XMPP服務器交談。所以每個用戶使用一個端口不是一種選擇。所以我想到使用BOSH(實際上是BOSH上的一個小黑客,在接收到響應時不ping服務器,但只在XMPP服務器上的閒置時間到達Bosh Connection之前ping)。我還希望將BOSH連接上的「等待」時間設置爲最小值,以便服務器立即返回響應。所有這些都不會阻塞端口太久。如何從服務器端Java應用程序發送XMPP通知?
我在尋找支持BOSH的不同XMPP基於Java的客戶端庫,並且唯一一個我工作的是Tigase JaXMPP庫(經過一些攻擊之後)。但是由於許可模式,我無法在我的項目中使用它。另一種選擇是Smack,但是我意識到他們不支持BOSH,但在官方發佈(它在一個分支上,我認爲它並不真正活躍)。有誰知道這個需求的其他選擇嗎?
當我在閱讀更多內容時,我發現了Strophe.js - 據說它對BOSH有很大的支持 - 但是對於基於Web的應用程序來說,這似乎更多。有誰知道我可以如何從我的java代碼調用Strophe函數,還有無論如何,我可以修改Strophe.js庫以在BOSH連接上設置不同的等待時間,並且在收到響應時不會ping服務器,而只是在不活動時間到期之前?
任何見解或想法表示讚賞。
你是否需要接收這些用戶的消息/節?還是單向的? – MattJ
因此,此服務器應用程序從另一個應用程序接收用戶通知,並且必須處理通知以及在XMPP服務器上登錄/註銷用戶。它不需要爲這個用戶處理任何消息。事實上,我們會阻止這些在XMPP服務器上(在我們的控制下),或者在這臺服務器上忽略它們。希望我回答你的問題。 – user2452768