進入好聊聊天室
目前聊天室有兩種,一種是基於網頁的,還有一種是需要安裝軟體的。
我們來看看第一種
瀏覽器的看看進入聊天室的過程。
1.首先瀏覽器請求頁面:
此時產生了一個連線到伺服器聊天連線埠的聯接,並傳送了一行數據:
2.伺服器生成一個session ID,驗證密碼以後,發回:
然後伺服器關閉聯接。
3.瀏覽器收到以上檔案後,將會依次打開三個聯接(其中的$sid和$encrypt_pass是變數):
這三個聯接中的第一個聯接chat在整個聊天過程中都是保持聯接的,這樣從瀏覽器角度來看,就是一個始終下載不完的大頁面,顯示效果上就是聊天內容不是靠刷新來更新,而是不斷地向上滾動。通過察看代碼可以看到,然後就是不斷增加的聊天內容.另外兩個聯接在頁面傳送完畢以後,就關閉了。這樣一次登錄聊天室實際上有四次聯接,但登錄完成以後,只有chat幀的是保持聯接的,用於接收來自伺服器的聊天信息,這是聊天室的關鍵所在。在伺服器端儲存了所有參加聊天的
客戶的chat,當有人發言時,伺服器就向所有chat傳送聊天內容。Talk與names幀的html實際上和普通的form是一樣的。
4.在用戶登錄以後,伺服器端保存了一張包括用戶信息的表格:
在perl實現中,我們使用哈希結構儲存信息,以session ID 作為key索引。這樣的存儲結構便於存取數據,回收空間。每個客戶信息是一個
數組:
[name,passwd,privilige,filter,login_time,color]:儲存chat幀聯接name:用戶名passwd:密碼privilige:許可權filter:某個用戶的過濾列表的引用(reference)login_time:記錄登錄時間,以便以後清除一些逾時聯接 color:用戶聊天顏色
以上用戶數據大部分是在login階段,用戶通過密碼驗證以後填入的。只有chat要等到chat幀顯示以後才得到。如果超過一定時間,還是沒有填入,說明瀏覽器取得主框架以後連線中斷了,這時候就需要刪除該用戶數據。以上是聊天室核心部分,其他部分,如用戶註冊、改密碼等可以沿用CGI聊天室代碼。
致於第二種就簡單多了,下載聊天室程式安裝後註冊一個註冊就可以登入了。
功能改進
目前提供了聊天、悄悄話、動作這些基本聊天功能以及過濾用戶名單這樣的附加功能。管理功能完成了踢人、查
IP、任命室主。今後需要改進的地方有:
穩定性:目前聊天室還沒有經過大用戶量測試,穩定性還不能充分保證。由於是單進程循環伺服器,某個用戶通信死鎖將導致所有人死鎖。如果採用並發多進程伺服器,可以使穩定性得到提高。但這樣的系統對伺服器資源消耗也會大許多。
功能:自建
聊天室等功能已完成,這些外圍功能在穩定性有保證以後就可以比較容易地加入。
收費情況
30元: 1個月VIP(加送25000幣) 100元 升級成VIP1半年(加送5萬點) 200元 升級成VIP2一年(加送10萬點) 380元 升級成VIP3二年(加送40萬點) 80元 送 10萬點 好聊幣 400元 送 50萬點 好聊幣 800元 送 100萬點 好聊幣(加送VIP2一年) 4000元 送 500萬點 好聊幣(加送大亨一月) 擴展閱讀: 好聊客戶端下載地址:http://jh.01lm.com/jh/955Uc_955uc98330_572.exe