我是新來的彗星。在Java中使用彗星進行基於Web的聊天?
任何人都可以告訴我如何在java中使用彗星實現基於web的聊天(任何web技術例如JSP,servlet struts等)。
任何幫助大大appriciated。
謝謝。
我是新來的彗星。在Java中使用彗星進行基於Web的聊天?
任何人都可以告訴我如何在java中使用彗星實現基於web的聊天(任何web技術例如JSP,servlet struts等)。
任何幫助大大appriciated。
謝謝。
使用maven(Struts2網站)設置一個基本的Struts2應用程序。
添加spring插件。
創建一個服務對象,它將保存聊天消息的日誌(List<Map<int, String>>
)。添加的每條消息都向列表中添加了一個新的地圖,索引1大於提交的消息的前一個。如果列表達到特定大小,請刪除最低的郵件以保持最大大小。 (有更好的數據結構,但你可以弄清楚)。
添加Struts2-JSON插件。
創建兩個json動作(閱讀如何使用Struts2-JSON插件)。 SendMessage和GetMessagesSince Action。還要創建一個基本的動作來創建聊天頁面(我也會使用約定插件)。
SendMessage將有一個消息的setter。爲狀態設置一個getter(返回「成功」或「失敗」)是一個好主意。
GetMessagesSince爲消息提供了一個getter,它將返回{int,Strings}列表。它將爲lastMessage(int)設置一個setter。
現在爲WebPage。此時只需使用短輪詢(在短暫休息後循環中調用)以獲得比'lastMessage'(將從零開始)更大的消息。使用jQuery魔法,您將獲得GetMessagesSince的響應(如果有任何歷史記錄,它將啓動聊天客戶端)。您將使用列表中的最後一條消息爲GetMessagesSince派生新值。
現在有了一些併發魔法,你可以實現長輪詢。您還可以在消息中添加日期,以便人們知道對話的年齡。您還可以通過創建聊天隊列的地圖來添加不同的消息組,例如:Map<String, List<Map<int, String>>>
在這種情況下,我選擇了字符串來標識您的聊天室。
如果你是認真的,我甚至可能會創建一個演示(它比聽起來容易)。
只是好奇,但你做了一個聊天客戶端與struts2? – Quaternion
爲什麼這個問題已被標記爲struts2? –
誰知道,但它很有趣,很多人喜歡聊天客戶端,這將是一個很好的教程。 – Quaternion