2014-02-24 36 views
2

我已經使用spring3創建了一對一的java聊天應用程序。它所做的是爲數據庫查詢特定用戶的新消息。這仍然是一個開發代碼,不能把它交給生產&你知道會發生什麼。java中沒有輪詢概念的聊天應用程序

我想創建一個沒有這個輪詢概念的聊天應用程序。我需要用戶在消息到達時才能收到消息,而不僅僅是推送消息。我搜索並找到了網絡套接字,彗星,XMPP等的結果,其中大多數需要特定的服務器和測試版本。我正在IBM WebSphere中運行我的應用程序。

任何人都不知道該怎麼辦? J Ruby是否值得嘗試?

+0

當你想要繞開HTTP協議,你應該切換到一個Java套接字的客戶端。 – Smutje

+0

我不知道你的客戶是哪種類型,但你可以嘗試JMS。除非你的客戶是一個網站,否則用戶仍然需要刷新頁面,或者你必須實施一些我猜測的輪詢。 – Yser

+0

你可以看看流星,它會自動處理你的消息 – ediblecode

回答

1

JMS主題將爲您提供一次性發布/訂閱和(仍然)服務器端持久性。

客戶端訂閱JMS隊列中的主題,然後「等待」新消息。您甚至可以支持斷開連接的客戶端,並且在重新連接時仍會收到錯過的消息。來自客戶端的消息可以寫入另一個隊列,由服務器中的MDB使用並重新分發到傳出隊列。

您的WebSphere應爲您提供JMS隊列據我記憶,以及接收郵件的客戶端代碼是大概不到10行代碼;-)

Oracle客戶端的例子:http://docs.oracle.com/javaee/1.3/jms/tutorial/1_3_1-fcs/doc/client_samples.html

+0

我會試試這個並回復:) – Arun

+0

我嘗試過使用網絡套接字和節點js和彗星。它的工作,但唯一的問題是,網絡套接字需要html5。 – Arun