聊天室

網路虛擬談話空間
更多義項 ▼ 收起更多 ▲

聊天室(chat room)是一個網上空間,為了保證談話的焦點,聊天室通常有一定的談話主題。任何一個聯入Internet、使用正確的聊天軟體,並且渴望談論的人都可以享受其樂趣。聊天室會話是自然會話在信息時代的延伸。合作原則解釋不了聊天室會話的諸多問題,沒有其適用性。聊天室有語音聊天室和影片聊天室等分類。

  • 中文名稱
    聊天室
  • 外文名稱
    chat room
  • 類    型
    網路論壇
  • 分    類
    影片類、文字類

基本介紹

網路聊天室通常直稱聊天室,是一種人們可以線上交談的網路論壇,在同一聊天室的人們通過廣播訊息進行即時交談。

聊天室可以建立在即時通訊軟體(如MSN Messenger、QQ、Anychat)、P2P軟體、全球資訊網(如 Halapo,Meebo ) 等基礎上,全球資訊網方式更為普通和種類繁多,交談的手段不局限于文本,更包括語音、影片。通常聊天室是按照房間或頻道為單位的,在同一房間或頻道的網人可以即時地廣播和閱讀公開訊息。一般情況下,與其它網路論壇、即時通訊不同的是,聊天室不儲存聊天記錄。

聊天室聊天室 聊天室圖片聊天室圖片

聊天室基本原理是,拋開CGI和WWW伺服器,根據HTML規範,接收到流覽器的請求以後,模仿WWW伺服器的回響,將聊天內容發回流覽器。在流覽器看來就像流覽一個巨大的頁面一樣始終處于頁面聯接狀態, 這就是一個專門的聊天伺服器,一個簡化了的WWW伺服器。

分類

影片類

影片聊天室是在一個網站中或者客戶端軟體中,供許多人通過文字與影片進行即時(您輸入的內容馬上就能被別人看見)交談、聊天的場所,它是一個向整個因特網開放的地方。例如:anychat、9158等。

文字類

文字聊天室是網站中以文字或符號顯示為信息傳遞方式的聊天方式。聊天室有一對一聊天、多人群聊等形式。文字聊天室多見于手機功能,或使用手機套用進行文字聊天,或使用流覽器作為載體進行網頁文字聊天。例如:omegle、妙戀佳人網手機wap聊天室等

優點

1.這樣相比CGI方式來說,聊天室的優點就很明顯。

2.不需要專門的WWW伺服器,在聊天伺服器裏完成必要的工作,避開耗時的CGI 過程。

3.如果使用單進程伺服器,就不需要每次產生新進程。

4.資料交換完全在記憶體中進行,不用讀寫檔案。

5.不需要定時重新整理,減少螢幕的閃爍,減少對伺服器的請求次數。

實現流程

一、 聊天伺服器實現流程

使用者資料輸入都是通過URL傳送,下面是幾個URL實例,結合後面客戶端流程,可以更好地理解系統結構。

這是一個使用者名稱密碼均為'aaa''''的聊天使用者登錄系統,說了一句話"hello",然後退出所產生的一系列請求,其中密碼用系統函式crypt加密過:

二、客戶端具體登錄過程

我們先看看聊天介面:

聊天介面由三個frame組成,其中chat幀是聊天內容顯示部分,talk幀是使用者輸入部分,包括聊天內容輸入、動作、過濾以及管理功能都在這一幀輸入,names是線上名單顯示部分,這一部分是定時重新整理的。

有沒有裸聊的啊

通常聊天室有兩種,一種是基于網頁的,還有一種是需要安裝軟體的。

我們來看看第一種流覽器的看看進入聊天室的過程。

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、任命室主。今後需要改進的地方有:

穩定性:聊天室還沒有經過大使用者量測試,穩定性還不能充分保證。由于是單進程迴圈伺服器,某個使用者通信死鎖將導致所有人死鎖。如果採用並發多進程伺服器,可以使穩定性得到提高。但這樣的系統對伺服器資源消耗也會大許多。

功能:自建聊天室等功能已完成,這些外圍功能在穩定性有保證以後就可以比較容易地加入。

小技巧

如何在聊天室改變字型的大小和顏色,還有傳送圖和音樂

註意:以下一定要在英文狀態下打。

使用< font>語句可以改變字的顏色、大小和字型。

例如:< font color=red face=宋體 size=3> hi< /font>

顏色有:

(灰色)gray,(海藍)navy,(橄欖)olive,(洋紅)fuchsin,(紫色)purple.

(黑色)black, Olive, Teal, (紅色)Red, (藍色)Blue, Maroon, Navy, Gray, Lime,

Fuchsia,(綠色)Green, Silver, (黃色)Yellow, Aqua

大小:1~30.一般用"3~5".

此外"< big>" "< strong>" "< b>" "< i>"等都可以使用。

具體的用法可以參考HTML語言的說明。您也可以使用一些HTML工具編寫好以後,再把源碼拷過來貼上。

如果您要恢復字型的設定,請使用"< /font>",因為經常有人忘記把"< font>"和"< /font>"成對使用,你可要記得喲!

傳送圖片: < img src=圖片網址>

例如: < img src=http://www.eSchool.c om. cn/cgd-01.gif>

傳送音樂: < img dynsrc=音樂網址>

例如: < img dynsrc=http://www.eSchool.c om.c n/duanfa.mid> 遺憾的是Netscape不支持。

以下是在進聊天室前加入的(再輸入名字那裏):

將名字變得好看些:

< font color=red size=5>old< /font>< font color=green size=5>

lion< /font>< font color=blue size=5>網友聊天室< /font>

這是我的,請參照,不要用我的啊。謝謝!

在名字前加幅圖: 就是在在進聊天室時像發圖那樣的,也可進了聊天室後在配置裏改。

教你一招:那就是看見人家在聊天室傳送出來的語句(如改變字型,傳送音樂或圖片,或者其他。)你可以用滑鼠右建按聊天的對話框一下,選擇"查看源檔案"那就可以看看人家傳送出來語句的原始碼。嘻```偷人的東西總不太好的。千萬不要告訴別人知道啊。

相關詞條

相關搜尋

其它詞條