国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JavaScript > 正文

基于javascript、ajax、memcache和PHP實現的簡易在線聊天室

2020-03-22 16:38:33
字體:
來源:轉載
供稿:網友
JavaScript 基于javascript、ajax、memcache和PHP實現的簡易在線聊天室
在線聊天室(online chatrooms)是一個共多人進行溝通交流的網絡平臺,隨著越來越多的新技術的發明和成熟運用,在線聊天室也出現使用各種不同技術的, 這篇文章我想簡單總結一下。首先說一下前臺技術,最新的當然是基于HTML5的websocket,它實現了瀏覽器服務器全雙工通信(full-duplex)。WebSocket通信協議于2011年被IETF定為標準 RFC 6455,WebSocketAPI被W3C定為標準。在WebSocket API中,瀏覽器和服務器只需要做一個握手的動作,然后,瀏覽器和服務器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。但是由于Websocket是HTML5的API,很多瀏覽器都還得不到支持,所以這種方式現在應用不是特別多。第二種是ajax,它是采用一種輪詢的方式,每隔一段時間,去服務器上下載數據,查看是否更新,它的優點是異步請求處理(也可以設置同步),不會阻塞用戶其它操作,缺點是不間斷的輪詢不僅占用消耗帶寬,也占用過多的終端和服務器資源,而且由于ajax輪詢有時間間隔,所以獲得的消息不是實時的,因為不是消息觸發,ajax的效率幾乎是最低的。第三種是基于服務器的推送技術(comet),說是推送,其實是偽推送,原理是在終端和服務器之間建立一條長連接,前臺通過判定這條長連接的內容是否改變而獲取內容,它的優點是占用資源較少,實時性好,確實是需要服務器特別的支持,而且長時間占用連接?,F在越來越多的服務都采用了這種技術。再來說下后臺,聊天室屬于高IO的應用,數據庫方面可能是最大瓶頸,聊天的特點是短文本較多,類似于微博。而且它屬于多用戶系統,當用戶達到一個數量級時,如果采用Mysql等關系型數據庫的話,查詢的壓力應該是很大的。如果沒有特殊的要求,個人認為,聊天記錄不需要永久存儲,這時候memcache,redis等基于內存的存儲系統就能發揮作用了。下面是我開發的一個簡單的基于ajax+php+memcache的在線聊天室。在這個聊天室中,所有聊天記錄都存放在memcache中,用cid存儲聊天記錄的最大id,用msgcid存放聊天記錄,每插入一條記錄,cid自增1。前臺通過ajax獲取獲取json格式數據,由于memcache是基于內存的特性,整體系統運行速度是非常快的。下面是系統的源碼,整個系統只有兩個文件,合起來不到10KB。phpstudy下載http://github.com/hitoy/online-chatroom系統需求:
1,安裝有memcache
2,php安裝memcache擴展
3,支持Javascript和ajax的現代瀏覽器更多編程語言

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奇台县| 衡阳市| 富蕴县| 正宁县| 张北县| 榕江县| 武冈市| 左权县| 东兴市| 尚义县| 富阳市| 通山县| 荔波县| 宁远县| 武城县| 广饶县| 澄迈县| 兴国县| 淮北市| 广丰县| 文水县| 保山市| 伊宁县| 鄂伦春自治旗| 清丰县| 泊头市| 蕉岭县| 疏附县| 公主岭市| 乐山市| 林甸县| 东阳市| 南充市| 浦江县| 中宁县| 永城市| 宁武县| 沛县| 江西省| 桂阳县| 乐昌市|