后端代碼pushphp lt?phpuse Workerman\Workerrequire_once #39WorkermanAutoloaderphp#39 初始化一個(gè)worker容器,監(jiān)聽1234端口$worker = new Worker#39websocket00001234#39 這里進(jìn)程數(shù)必須設(shè)置為1$worke。
然而在實(shí)時(shí)通信中,并沒有多大的作用。
我使用的工具是基于wokman的webmsgsender是一款web長連接推送框架,采用PHPSocketIO開發(fā),基于WebSocket長連接通訊,如果瀏覽器不支持WebSocket則自動(dòng)轉(zhuǎn)用comet推送 通過后臺(tái)推送消息,消息可以即時(shí)推送到客戶端,非輪詢,實(shí)時(shí)。
編寫客戶端頁面在PHP中,可以使用WebSocket客戶端庫如Ratchet和phpws等來創(chuàng)建客戶端頁面可以參考官方文檔和示例代碼實(shí)現(xiàn)服務(wù)端邏輯實(shí)現(xiàn)WebSocket服務(wù)器端的邏輯,例如處理客戶端發(fā)送的消息將消息發(fā)送給其他客戶端等具體。
1全局js里面,加定時(shí)ajax請求getmsgphp 2在getmsgphp里面,邏輯大致為獲取新消息數(shù)據(jù)含html鏈接地址等,新消息在數(shù)據(jù)庫表中標(biāo)識(shí)為舊消息,新消息數(shù)據(jù)寫為json格式并輸出,退出php。
網(wǎng)頁一般是單向主動(dòng)短鏈接,實(shí)時(shí)更新實(shí)在有些不便,即使一方掉線,另一方也不能及時(shí)感知一般所謂的實(shí)時(shí)刷新,大多采用定時(shí)刷新輪詢,或長輪詢的方式做,ajax用于更新數(shù)據(jù)確實(shí)是比較簡單方便的輪詢你就settimeout,長輪詢。
評(píng)論列表