麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

聊天室實現私聊(二)

2019-11-18 22:45:41
字體:
來源:轉載
供稿:網友


作者:網絡之門

    聊天室程序是一個applicationsession對象結合性很強的asp程序。首先,它比較具有實時性,聊天速度太慢,那么沒有人會喜歡的,而且在多人同時發言的時侯,如果程序處理不好,那么難免會發生張官李戴的現象,比如說明明張三說的話在先。李四說的話在后,但顯示出來的結果卻是倒轉了。還有就是每個客戶端顯示的談話內容不同步。(這里強調一點,聊天室的談話內容自動更新方式主要是兩種,一種是服務器自動更新,也就是它的聊天顯示內容區是一個正在打開中的html流,每當服務器接收到用戶的談話內容就會發送到用戶的瀏覽器中。另一種是用戶端定時向服務器端發出更新請求。后者的實時性沒前者強。但制作起來簡單,要完成服務器端自動更新,光靠asp是無法完成的。因為ASP沒有內置的延時功能。現在所舉例的聊天室主要是以后者來說明的,但方法同樣可以前者里使用)

  要解決多個用戶同時發言以及顯示的順序問題,那么就必須為談話內容建立一個緩沖區,就好象操作系統的鍵盤緩沖區的功能一樣,即使系統正在忙于處理別的任務,但還是可以準確地接受用戶輸入。

  上面的程序例子:

dim chats(20)
for n=1 to 20
chats(n)=application("chats")(n)
next
  就是建立了一個20個元素的chats數組,那么只需要再建立一個全局公用的計數器(用application對象來保存),用以指示當前最新的發言內容是在那一個元素當中。而每個用戶又定義一個session對象的計數器。用以記錄當前聊天者本機顯示的信息是顯示到那一條談話記錄上。兩者之差的談話內容都必須在下一次更新說話內容的時侯顯示出來。

  chats數組作為一個談話緩沖區,是需要循環使用的。比如第一句發言的保存在chats(1)中,第二十句則保存在chats(20)中,而第二十一句則重新使用chats(1)來保存,而把第一句的內容覆蓋掉。而chats數組只是用于處理公共的談話內容。也就是不是“悄悄話”如果把悄悄話也作為一條新的信息保存在這里,那么就會影響的計數器了。因為對于非悄悄話的聊天對象來說。這句話是無意義的。為了減少條件判斷,就把悄悄話另外用application("chat")這個應用對象變量來保存。在悄悄話的處理用,小虎并沒有使用緩沖區,因此當同一聊天室內多個網友同時使用悄悄話功能時,就可能出現有的悄悄話在沒被顯示出來之前,被漏掉的缺點,大家不妨可以發揮自己的智慧去改進一下哦:)

  當處理完chats的對話內容后。必須把它重新存儲到application("chats")(n)這個全局的談話緩沖區中,那樣才能讓所有用戶共享對話內容。

  下面是對耳語的談話處理

'耳語處理
application("chat")="<font color=blue>"&usertime&"</font> <font color=black>"&username&"</font> <I>悄悄地對<font color=#00bb00>&nbsp;"&request.FORM("whoto")&" </font>耳語</I>:<font color=#0000aa> "&usersays&"</font><BR><BR>"
'對誰說
application("chatto")=request.FORM("whoto")
'說話的人
application("owner")=username
session("chat")="true"
end if

  session("chat")是一個用來記錄用戶是否有悄悄話的標記,當更新對話內容的時候,就通過判斷這個標記來判斷是否有悄悄話產生。同時。通過applicaton("chat")記錄對話內容,applicaton("chatto")悄悄話的對象,application("owner")保存發言者本人(別忘了悄悄話是自己和接受悄悄話的對方可以看見的哦:(,還有,當對ALL(所有人)發悄悄話時,大家都應能看見這句瞧瞧話。

當發言內容都分別進入了application("chats")(n)和applicaton("chat")這兩個談話緩沖區后。下一步要做的就是顯示出對話內容了。這里先向大家提一下如何實現聊天事的定時刷新(客戶端主動)

         在我們的html文件的頭有一個這樣的標記

         <meta http-equiv="refresh" content="2.5">

         這里示了html文檔的更新類行,上面這個標記就是把本文檔按2.5秒的速度不斷自動刷新,那么利用這一點,就可以實現自動更新對話內容了。我們使用的顯示對話的asp文件名為top.asp。下一節大家一起來看看它的結構。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精品国产清自在天天线 | 91超视频 | 精品国产91久久久久久 | 日韩视频一二三 | 毛片国产 | 国产精品999在线观看 | 久久精品男人 | 国产精品毛片va一区二区三区 | 成人毛片100部| 中文字幕在线成人 | 麻豆视频观看 | 97久久曰曰久久久 | 欧美日本色 | 午夜小网站 | 特级黄色小说 | 亚洲日本高清 | 国产精品性夜天天视频 | 欧美日韩免费一区 | 欧美视频国产 | 亚州综合 | 成人在线观看免费观看 | av在线高清观看 | 久草在线播放视频 | 欧美大电影免费观看 | 成人三级电影网站 | 免费看真人a一级毛片 | 色七七久久影院 | 免费黄色在线电影 | 国产1区2区3区在线观看 | 亚洲一区二区成人 | 在线2区 | arabxxxxvideos | 一本色道久久99精品综合蜜臀 | 天天躁狠狠躁夜躁2020挡不住 | 一区二区三视频 | 国产成人精品二区 | 国产在线91 | 亚欧在线免费观看 | 久久国产精品二国产精品中国洋人 | 毛片在线免费观看完整版 | 免费a视频 |