如果想對乙個列表做實時的更新,傳統的做法是採用輪詢的方式。以web為例,通過ajax定時請求服務端然後獲取資料顯示在頁面。這種方式實現簡單,缺點就是浪費資源。
http1.1新增加了對websocket的支援,這樣就可以將被動展示轉變為主動通知。也就是通過websocket與服務端保持持久鏈結,一旦資料發生變化,由server通知client資料有更新,然後再進行重新整理等操作。這樣就省去了很多不必要的被動請求,節省了伺服器資源。
if(ws === null);
ws.onmessage = function(e);
ws.onclose = function();
ws.onerror = function(e);
//離開頁面時關閉連線
$(window).bind('beforeunload',function()
);}
這樣就實現了乙個client,不過事情還遠沒有結束。上面的**只是簡單的進行了連線,對話,關閉等基本動作。如果想和服務端進行通訊,必須要有更具體的方案。比如收到message時根據內容完成進一步操作。
服務端:此處採用swoole進行php服務端的websocket開發,使用swoole進行php的websocket開發非常簡單,而且它還支援httpserver。詳細的介紹可以參考這裡
$server = new swoole_websocket_server("0.0.0.0", 8888);
$server->on('open', function
(swoole_websocket_server $server, $request)
\n";
});$server->on('message', function
(swoole_websocket_server $server, $frame)
:,opcode:,fin:\n";
$server->push($frame->fd, "this is server");
});$server->on('close', function
($ser, $fd)
closed\n";
});$server->start();
ps.swoole是乙個php的擴充套件,安裝方式可以參考這裡 php 安裝swoole擴充套件
2 解壓unzip swoole src master.zip 3 編譯發現沒有configure 使用phpize 生成 configure 進入到swoole 解壓後的目錄 cd usr local src swoole src master 執行phpize usr local php7 bi...
php安裝swoole擴充套件
pecl download swoole解壓並進入目錄 tar zxvf swoole 4.3.3.tar.gz cd swoole 4.3.3執行phpize生成configure可執行檔案 這裡的目錄一定是你要安裝swoole擴充套件對應的php版本的安裝目錄,如果存在多個php版本一定要注意這...
PHP安裝swoole擴充套件
個人伺服器進行swoole安裝 伺服器 centos 6.8版本 swoole手冊建議pecl安裝 pecl install swoole執行這個命令之後發現沒有pecl這個命令 所以只能進行pecl安裝 yum install php71w pear php71w develphp71w這個是因為...