我有一個學校項目,我必須實現一個聊天應用程序,其服務器將是一個Java Web服務。實現聊天服務器作爲WebService
問題是,我一直認爲Web服務是一種調用遠程函數的方式,我不知道如何在Web服務上保持「會話」活動狀態,也不知道如何跟蹤所有當前在聊天的人,房間等。
我有一個學校項目,我必須實現一個聊天應用程序,其服務器將是一個Java Web服務。實現聊天服務器作爲WebService
問題是,我一直認爲Web服務是一種調用遠程函數的方式,我不知道如何在Web服務上保持「會話」活動狀態,也不知道如何跟蹤所有當前在聊天的人,房間等。
據我所知,聊天服務器在初始連接後應該知道它的客戶端,並將所有客戶端消息發送給所有客戶端。這絕對需要某種會話維護。我認爲正確的做法如下:
我不太確定郵件分發應該如何工作,因爲Web服務本質上是一種拉服務而不是推送。也許客戶端應該公開自己的Web服務以供服務器調用。
希望這有助於
尤瓦= 8-)
我不知道Java,所以這個答案將是語言不可知的。
在我看來,最簡單的方法來做到這一點,而不需要在服務器上運行一個進程將存儲所有的數據在數據庫中。
這裏是一個將需要完成的基本的東西的簡短列表:
如果你仍然需要一些幫助,這裏應該是一個AJAX/ASP.Net聊天應用程序,應該(我沒有看它的源代碼)的工作方式大致相同。
我寫了存儲在數據庫中,一個輸入表單框架和接收的輸出幀的背景,一切的服務的聊天引擎html流。
如果你想跳過服務部分,只通過web服務實現,你需要實現至少兩個操作:發佈輸入,GetLatestChanges接收聊天輸出,使用一些Javascript魔術翻譯成HTML。
當然,您需要跟蹤房間,用戶,消息,哪些用戶收到哪些文本等,如Unknwntech所描繪的。
您可以考慮實施COMET解決方案。這將有效地爲您提供推送通信,從而消除延遲,這是聊天應用程序的非常棒的功能。
如果你想要去的黃金,考慮實施更先進的功能:自動轉換成鏈接
下次你看到你的英語老師告訴他/她你原來的問題的副本。歡迎來到StackOverflow。 – UnkwnTech 2009-05-24 08:26:07
但是,只要意義被傳達,顯然在互聯網上的語法並不重要 – Chii 2009-05-24 08:58:36
語法在你去的任何地方都是非常重要的。 – 2009-05-24 09:17:26