日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

PHP聊天室技術(shù)(1)

瀏覽:24日期:2024-01-19 09:05:14

PHP聊天室技術(shù) 黃國(guó)輝

1.前言 上網(wǎng)聊天是時(shí)下最流行的交友方式。各大網(wǎng)站推出的聊天室都各具特色。 聊天室主要分為WebChat、BBSChat兩種。BBSChat是基于Telnet的Tcp協(xié)議,是BBS的附設(shè)功能,需要客戶端Telnet程式。WebChat則采用瀏覽器方式,實(shí)際上是個(gè)多人一起使用的CGI程式。其基本原理是把每個(gè)用戶的發(fā)言通過瀏覽器傳給系統(tǒng),再由系統(tǒng)收集處理后分發(fā)給特定用戶。 WebChat一般采用Server Push或Client Pull技術(shù)。兩種技術(shù)的區(qū)別在于使用不同的方式將數(shù)據(jù)分發(fā)給用戶,Server Push是由服務(wù)器將數(shù)據(jù)以多重MIME編碼,推給(push)使用者端,現(xiàn)在較少網(wǎng)站使用這種方式。Client Pull則是用戶從服務(wù)器拉(pull)所要的數(shù)據(jù)。 最常用的Client Pull就是利用Html語言的Meta標(biāo)簽http-equiv='Refresh' 的屬性,每隔一段時(shí)間就檢查服務(wù)器上是否有新的數(shù)據(jù)。例如 ,每隔5秒鐘就會(huì)刷新一次頁面。這種方法簡(jiǎn)單有效,缺點(diǎn)是刷新時(shí)會(huì)產(chǎn)生閃爍的現(xiàn)象;而且為了保持效率,每次刷新都會(huì)把舊的聊天內(nèi)容清除,用戶想查看或保留對(duì)話內(nèi)容都很不方便。為此,采用JavaApplet作為聊天室的前端,利用刷新把從服務(wù)器Pull的數(shù)據(jù)通過JavaApplet來顯示也是一種解決方案。更有就是本文要介紹的使聊天程式保持連線的方案。方法一,把聊天程式配置為無限大,就能使瀏覽器不停地保持下載的連線狀態(tài);方法二,聊天程式中存在著無限循環(huán),因?yàn)槟軌蚍奖愕嘏渲酶呒?jí)的功能,所以在此選擇采用。 Web服務(wù)器采用FreeBSD+Apache,原因是兩者的組合具備最強(qiáng)的性能,而且花費(fèi)為零。還需要考慮的是用什么方式來存放數(shù)據(jù)呢。用文檔相對(duì)而言容易實(shí)現(xiàn),但是多人使用,頻繁地對(duì)同一文檔進(jìn)行IO操作,難免會(huì)影響效率,況且FreeBSD的IO性能不佳。能夠考慮使用RamDisk,將文檔整個(gè)放進(jìn)內(nèi)存,以提高速度?;蛟趦?nèi)存中劃分出一塊高速空間用以數(shù)據(jù)存放。筆者使用的是數(shù)據(jù)庫方式:MySQL。因?yàn)樵摂?shù)據(jù)庫就是為大批量用戶同時(shí)使用而設(shè)計(jì),利用他能夠省去設(shè)計(jì)高速空間操作的復(fù)雜編寫,速度也可得到確保。如將整個(gè)數(shù)據(jù)庫放進(jìn)內(nèi)存,效果更好。 程式用PHP+Html+JavaScript編寫。聊天室主要是對(duì)Html的Form中的各種元素進(jìn)行操作。JavaScript是基于對(duì)象的語言,對(duì)Html中的各種元素皆當(dāng)作對(duì)象看待,所以每個(gè)元素的方法和屬性都很豐富,操作比較方便。而PHP只有在Form經(jīng)過Post后,將Form中的元素轉(zhuǎn)成對(duì)應(yīng)的變量,才能處理用戶輸入的數(shù)據(jù)。從交互性來說比較差,這也是使用JavaScript的原因。采用PHP的原因是因?yàn)楸绕鹌渌鸆GI語言,其速度和安全性都較佳,研發(fā)也比較容易。

2. 不斷刷新的聊天室 一個(gè)標(biāo)準(zhǔn)的聊天室頁面由三個(gè)Frame組成,分別是顯示在線用戶的Online、用戶發(fā)言及功能配置的Say和顯示聊天內(nèi)容的List。用戶在Say Frame中敲入發(fā)言內(nèi)容后按發(fā)送,數(shù)據(jù)經(jīng)過處理后保存在Mysql數(shù)據(jù)庫,同時(shí)被保存的還包括發(fā)言人、聊天對(duì)象及發(fā)言的時(shí)間。用戶一進(jìn)入聊天室,List Frame從Mysql數(shù)據(jù)庫中把發(fā)言時(shí)間大于用戶進(jìn)入時(shí)間的發(fā)言提出顯示出來。而后續(xù)顯示新的發(fā)言內(nèi)容的關(guān)鍵,在于顯示聊天內(nèi)容的那段程式是無限循環(huán)的。 List Frame程式概要: $db=mysql_pconnect(localhost,root);;#Mysql數(shù)據(jù)庫連接 mysql_select_db(chat,$db); 顯示歡迎進(jìn)入聊天室 配置$init為數(shù)據(jù)庫中發(fā)言時(shí)間比 進(jìn)入時(shí)間大的第一個(gè)數(shù)據(jù)的ID號(hào)#是數(shù)據(jù)提取的標(biāo)志位 while (1==1) {;;#無限循環(huán)開始 提取從$init到最后的數(shù)據(jù); while (每一個(gè)數(shù)據(jù)$text) { $emote=strip_tags($text) #防止用戶直接輸入Html語言 if (eregi('^/',$emote)) #判斷發(fā)言是否系統(tǒng)命令(以/開頭) 系統(tǒng)特別處理 else 顯示發(fā)言 } 配置$init為最后數(shù)據(jù)的ID號(hào) flush();;;;;#清出輸出緩沖,使發(fā)言馬上顯示 sleep(2);;;;;#使程式暫停2秒,節(jié)省系統(tǒng)資源 mysql_free_result($result);;;;;#釋放數(shù)據(jù)庫結(jié)果占用的內(nèi)存 } 因?yàn)槌淌綗o限循環(huán),在每次循環(huán)中輸出的發(fā)言是先置入輸出緩沖區(qū)內(nèi)。通過flush()馬上把緩沖區(qū)的內(nèi)容向用戶的List Frame送出,達(dá)到了實(shí)時(shí)的聊天效果。循環(huán)最后要釋放Mysql結(jié)果集占用的內(nèi)存,否則因?yàn)闊o限循環(huán)的緣故,系統(tǒng)資源很快會(huì)被耗盡。 用戶在Login后將建立一個(gè)Online的表用于在線用戶的統(tǒng)計(jì),主要是為了防止User表過大,程式中頻繁用到的檢索會(huì)拖慢系統(tǒng)的運(yùn)作。這其中用的最多的是Online Frame,在采用Client Pull的Refresh Meta,每隔一段時(shí)間就會(huì)查詢Online表,以刷新在線的用戶。假如用戶不發(fā)言超過規(guī)定時(shí)間,系統(tǒng)會(huì)調(diào)用自定義函數(shù)將用戶設(shè)為TimeOut,強(qiáng)制將其退出聊天室。

標(biāo)簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久观看| 91成人精品视频| 久久香蕉精品| 日韩在线一区二区| 免费在线观看日韩欧美| 日韩国产一区二| 国产精一区二区| 免费观看亚洲天堂| 日韩欧美一区二区三区在线观看| 91精品国产自产在线观看永久∴| 亚洲电影在线| 男人的天堂久久精品| 欧美天堂在线| 精品女同一区二区三区在线观看| 亚洲综合在线电影| 免费成人av在线播放| 亚洲天堂av资源在线观看| 国产剧情一区二区在线观看| 91欧美在线| 免费看日韩精品| 欧美成a人片免费观看久久五月天| 日本精品在线中文字幕| 亚洲尤物av| 超碰99在线| 一区二区电影| av资源中文在线| 中文字幕av一区二区三区四区| 欧美久久久网站| 久久久人人人| 国产日韩欧美一区在线| 精品欧美一区二区三区在线观看| 人人香蕉久久| 欧美视频久久| 国产尤物精品| 欧美极品中文字幕| 国产免费成人| 精品香蕉视频| 日韩精品一区第一页| 色婷婷综合网| 综合一区二区三区| 日韩欧美三级| 国产人成精品一区二区三| 色综合www| 国产乱码精品一区二区三区亚洲人 | 三级欧美韩日大片在线看| 国产精品欧美在线观看| 婷婷激情综合| 国产成人精品免费视| 视频一区二区三区中文字幕| 久久久久久婷| 国产日韩欧美一区在线| 欧美一区=区| 天堂日韩电影| 精品淫伦v久久水蜜桃| 视频一区二区三区在线| 欧美日韩免费看片| 国产欧美88| 亚洲一区成人| 秋霞影院一区二区三区| 欧美成人一二区| 日韩和欧美一区二区| 国产毛片久久| 成人av二区| 日韩精品首页| 成人国产精品| 国产精品第一| 亚洲视频二区| 91久久视频| 激情六月综合| 成人羞羞在线观看网站| 精品视频在线你懂得| 日韩精品午夜视频| 亚洲综合不卡| 米奇777超碰欧美日韩亚洲| 国产一区二区三区不卡视频网站 | 欧美成人日韩| 色婷婷精品视频| 韩国久久久久久| 婷婷五月色综合香五月| 91久久国产| 久久天堂精品| 日本久久成人网| 日韩成人综合| 日韩欧美自拍| 日韩精品专区| 日韩国产一区二区| zzzwww在线看片免费| 麻豆91在线播放| 麻豆国产91在线播放| 国产免费播放一区二区| 国产精品乱战久久久| 国产精品白丝av嫩草影院| 国产欧美日韩免费观看| 国产欧美成人| 亚洲一区二区日韩| 亚洲三级毛片| 欧美精品中文字幕亚洲专区| 欧美日韩亚洲国产精品| 国产精品一区二区99| 国产精品久久国产愉拍| 久久一区精品| 日韩毛片视频| 激情婷婷综合| 日韩精品一卡二卡三卡四卡无卡| 日本 国产 欧美色综合| 日韩综合小视频| 国产精品网在线观看| 美女av一区| 欧美日韩视频免费观看| 成人高清一区| 免费久久精品| 亚洲日本在线观看视频| 国产欧美69| 四虎成人av| 国户精品久久久久久久久久久不卡| 免费观看不卡av| 中文字幕亚洲在线观看| 欧美偷窥清纯综合图区| 91亚洲成人| 亚洲精品2区| 日韩亚洲精品在线观看| 国产精品www994| 成人在线网站| 亚洲丝袜啪啪| 国产精品久久久久久妇女| 色偷偷色偷偷色偷偷在线视频| 91久久国产| 国产欧美日韩视频在线| 成人免费电影网址| 亚洲欧美日本国产| 高清av一区| 久久高清免费观看| 国产精品3区| 国产真实久久| 青草av.久久免费一区| 日本一区二区免费高清| 夜夜精品视频| 国产福利一区二区精品秒拍| 国产在线|日韩| 一级欧洲+日本+国产| 日本欧美久久久久免费播放网| 精品国产欧美日韩| 久热精品在线| 日本激情一区| 日韩在线成人| 久久久777| 国产精品亚洲成在人线| 精品一区在线| 久久久久亚洲精品中文字幕| 国产亚洲精品v| 日韩成人a**站| 日本精品在线播放| 亚洲午夜久久久久久尤物| 欧美天堂在线| 91精品一区二区三区综合| 欧美日韩99| 合欧美一区二区三区| 精品欧美视频| 青青在线精品| 女同性一区二区三区人了人一| 国产精品v日韩精品v欧美精品网站| 亚洲一区激情| 国产成人精品亚洲日本在线观看| 久久国产生活片100| 国产婷婷精品| 蜜臀国产一区| 欧美aⅴ一区二区三区视频| 午夜精品婷婷| 国产一区二区三区成人欧美日韩在线观看| 久久美女性网| 日韩理论片av| 国产一区二区三区不卡av | 99国产精品久久久久久久成人热| 精品视频在线你懂得| 日韩国产精品久久久久久亚洲| 亚洲午夜黄色| 在线看片国产福利你懂的| 欧美自拍一区| 免费成人在线影院| 欧美aa国产视频| 91看片一区| 精品中文字幕一区二区三区 | 欧美日韩高清| 亚洲成人二区| 色婷婷精品视频| 日本午夜大片a在线观看| 久久精品国产亚洲一区二区三区| 日本三级亚洲精品| 亚洲精品高潮| 免费国产亚洲视频| 国产农村妇女精品一二区| 欧美日韩在线网站| 国产精品videossex| 免费看精品久久片| 亚洲欧洲午夜| 中文一区二区| 中文视频一区| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 国产精品18| 国产视频网站一区二区三区|