使用php的swoole擴充套件實現資料實時更新 上

2021-07-31 06:16:44 字數 1145 閱讀 8067

如果想對乙個列表做實時的更新,傳統的做法是採用輪詢的方式。以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這個是因為...