前言
websocket 作為 HTML5 里一個新的特性一直很受人關(guān)注,因?yàn)樗娴姆浅?幔蚱屏?http “請求-響應(yīng)”的常規(guī)思維,實(shí)現(xiàn)了服務(wù)器向客戶端主動推送消息,本文介紹如何使用 PHP 和 JS 應(yīng)用 websocket 實(shí)現(xiàn)一個網(wǎng)頁實(shí)時聊天室;
以前寫過一篇文章講述如何使用ajax長輪詢實(shí)現(xiàn)網(wǎng)頁實(shí)時聊天,見鏈接: 網(wǎng)頁實(shí)時聊天之js和jQuery實(shí)現(xiàn)ajax長輪詢 ,但是輪詢和服務(wù)器的 pending 都是無謂的消耗,websocket 才是新的趨勢。
最近艱難地“擠”出了一點(diǎn)時間,完善了很早之前做的 websocket “請求-原樣返回”服務(wù)器,用js完善了下客戶端功能,把過程和思路分享給大家,順便也普及一下 websocket 相關(guān)的知識,當(dāng)然現(xiàn)在討論 websocket 的文章也特別多,有些理論性的東西我也就略過了,給出參考文章供大家選擇閱讀。
正文開始前,先貼一張聊天室的效果圖(請不要在意CSS渣的頁面):
然后當(dāng)然是源碼: 我是源碼鏈接 - github - 枕邊書
websocket
簡介
WebSocket 不是一門技術(shù),而是一種全新的協(xié)議。它應(yīng)用 TCP 的 Socket(套接字),為網(wǎng)絡(luò)應(yīng)用定義了一個新的重要的能力:客戶端和服務(wù)器端的雙全工傳輸和雙向通信。是繼 Java applets、 XMLHttpRequest、 Adobe Flash,、ActiveXObject、 各類 Comet 技術(shù)之后,服務(wù)器推送客戶端消息的新趨勢。