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

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

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

瀏覽:29日期: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久久,三上悠亚国产精品一区二区三区
成人羞羞在线观看网站| 麻豆精品视频在线观看| 99久久亚洲精品蜜臀| 亚洲高清激情| 蜜桃免费网站一区二区三区 | 亚洲一区中文| 亚洲精品观看| 久久精品国产999大香线蕉| 福利一区二区三区视频在线观看| 久久99高清| 亚洲成人精品| 亚洲精品国产日韩| 久久精品天堂| 久久伊人国产| 午夜精品影院| 国产精品多人| 欧美 日韩 国产一区二区在线视频| 亚洲免费播放| 国产精品视频一区视频二区| 日韩欧美一区二区三区在线观看| 女人av一区| 久久不卡国产精品一区二区| 久久精品中文| 国产精品丝袜在线播放| 蜜桃成人av| 国产精品久久久久久久久久妞妞 | 日本亚洲三级在线| 精品一区二区三区的国产在线观看| 亚洲天堂久久| 免费亚洲婷婷| 国产精品普通话对白| www.51av欧美视频| 日韩精品视频在线看| 免费毛片在线不卡| 国产成人免费| 97精品久久| 亚洲欧洲美洲国产香蕉| 欧美一级精品| 日韩av在线中文字幕| 久久国产高清| 高清不卡亚洲| 精品久久福利| 国产精品magnet| 日韩欧美中文字幕电影| 亚洲自拍另类| 极品裸体白嫩激情啪啪国产精品| 国产精品1luya在线播放| 日韩精品第二页| 国产精品女主播一区二区三区| 久久一区二区三区喷水| 国产精品久久观看| 97人人精品| 国产理论在线| 97精品97| 麻豆精品新av中文字幕| 国产欧美高清| 精品久久久亚洲| 国产精品不卡| 免费污视频在线一区| 亚洲成人va| 国产一区久久| 亚洲少妇诱惑| 蜜臀va亚洲va欧美va天堂| 欧美午夜不卡| 亚洲免费播放| 日本久久一区| 国产亚洲精品精品国产亚洲综合| 国产免费播放一区二区| 精品久久视频| 欧美日韩国产观看视频| 99精品一区| 一区二区三区国产盗摄| 91麻豆精品激情在线观看最新| 亚洲精品成人图区| 自拍日韩欧美| 欧美在线观看天堂一区二区三区| 日本伊人久久| 麻豆精品视频在线观看视频| 欧美国产偷国产精品三区| 在线日韩电影| 国产调教一区二区三区| 日韩成人a**站| 99精品在线| 日本亚州欧洲精品不卡| 日韩av一区二区三区四区| 国产亚洲人成a在线v网站 | 欧美a级片一区| 欧美自拍一区| 久久亚洲专区| 欧美一区激情| 亚洲精品一区二区在线看| 日韩精品91亚洲二区在线观看| 久久亚洲人体| 亚洲精品高潮| 色天使综合视频| 日韩在线电影| 激情欧美丁香| 国产精品久久久久久模特| 四虎成人av| 日韩手机在线| 中文日韩欧美| 久久国产直播| 精品视频一二| 国产探花一区| 亚洲一区二区三区无吗| 国产91精品对白在线播放| 国产美女撒尿一区二区| 视频在线在亚洲| 电影亚洲精品噜噜在线观看 | 亚洲自拍另类| 不卡av一区二区| 中文av在线全新| 日韩超碰人人爽人人做人人添| 激情欧美一区| 午夜精品婷婷| 国产精品av久久久久久麻豆网| 蜜桃久久久久| 精品国产精品久久一区免费式| 欧美影院视频| 久久国产人妖系列| 国产日产精品一区二区三区四区的观看方式 | 欧美日韩日本国产亚洲在线| 美女福利一区二区三区| 高清av一区| 国产日韩欧美三区| 欧美在线91| 精品无人区麻豆乱码久久久| 国产视频一区免费看| 欧美日韩视频免费观看| 国产精品久久国产愉拍| 美女视频免费精品| 国产传媒在线观看| 国内精品福利| 伊人久久亚洲影院| 天使萌一区二区三区免费观看| 亚洲综合不卡| 婷婷综合电影| 国产精品毛片aⅴ一区二区三区| 精品少妇一区| 成人一区而且| 一本一道久久a久久精品蜜桃| 在线看片日韩| 麻豆国产一区| 国产模特精品视频久久久久| 日本不卡高清视频| 久久久国产精品网站| 欧美日韩视频免费观看| 午夜在线视频观看日韩17c| 97久久中文字幕| 亚洲精品国产嫩草在线观看| 一区二区精彩视频| 91麻豆国产自产在线观看亚洲| 妖精视频成人观看www| 国产精品va| 欧美亚洲国产激情| 欧美亚洲网站| 欧美va天堂在线| 日韩成人精品一区二区三区 | 91欧美日韩| 亚洲精品日韩久久| 日本国产精品| 国产麻豆精品久久| 午夜日韩在线| 久久字幕精品一区| 久久夜色精品| 亚洲a在线视频| 日韩精品一区二区三区中文| 秋霞影院一区二区三区| 国产欧美日韩精品高清二区综合区 | 日韩美女国产精品| 欧美在线资源| 桃色一区二区| 久久精品系列| 91伊人久久| 婷婷精品在线观看| 久久成人一区| 91精品成人| 国产精品久久久久蜜臀| 91国内精品| 日韩在线黄色| 蜜桃久久精品一区二区| 99热精品久久| 99免费精品| 99精品视频精品精品视频| 水蜜桃久久夜色精品一区| 国产精品视频一区视频二区| 欧美欧美黄在线二区| 久久一二三区| 久久都是精品| 日韩专区欧美专区| 国产美女精品| 亚洲综合图色| 综合色就爱涩涩涩综合婷婷| 亚洲综合精品四区| 免费精品视频| 日韩中文字幕视频网| 国产日韩欧美一区| 精品国产午夜肉伦伦影院| 国际精品欧美精品| 日韩一区亚洲二区|