欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用php+swoole對client數(shù)據(jù)實(shí)時(shí)更新(一)

 更新時(shí)間:2016年01月07日 11:46:44   作者:hello大雄  
這篇文章主要介紹了使用php+swoole對client數(shù)據(jù)實(shí)時(shí)更新(一) 的相關(guān)資料,需要的朋友可以參考下

如果想對一個(gè)列表做實(shí)時(shí)的更新,傳統(tǒng)的做法是采用輪詢的方式。以web為例,通過Ajax定時(shí)請求服務(wù)端然后獲取數(shù)據(jù)顯示在頁面。這種方式實(shí)現(xiàn)簡單,缺點(diǎn)就是浪費(fèi)資源。

HTTP1.1新增加了對websocket的支持,這樣就可以將被動展示轉(zhuǎn)變?yōu)橹鲃油ㄖ?。也就是通過websocket與服務(wù)端保持持久鏈接,一旦數(shù)據(jù)發(fā)生變化,由server通知client數(shù)據(jù)有更新,然后再進(jìn)行刷新等操作。這樣就省去了很多不必要的被動請求,節(jié)省了服務(wù)器資源。

要實(shí)現(xiàn)一個(gè)webscoket的程序,首先需要使用支持html5的瀏覽器

if(ws === null){
var wsServer = 'ws://'+ location.hostname +':8888';
ws = new WebSocket(wsServer);
ws.onopen = function(){
console.log("socket連接已打開");
};
ws.onmessage = function(e){
console.log("message:" + e.data);
};
ws.onclose = function(){
console.log("socket連接已斷開");
};
ws.onerror = function(e){
console.log("ERROR:" + e.data);
};
//離開頁面時(shí)關(guān)閉連接
$(window).bind('beforeunload',function(){
ws.close();
}
);
} 

這樣就實(shí)現(xiàn)了一個(gè)client,不過事情還遠(yuǎn)沒有結(jié)束。上面的代碼只是簡單的進(jìn)行了連接,對話,關(guān)閉等基本動作。如果想和服務(wù)端進(jìn)行通訊,必須要有更具體的方案。比如收到message時(shí)判斷類型進(jìn)行進(jìn)一步操作。

服務(wù)端:此處采用Swoole進(jìn)行php服務(wù)端的websocket開發(fā),使用swoole進(jìn)行php的websocket開發(fā)非常簡單,而且它還支持httpserver的支持。

$server = new swoole_websocket_server("0.0.0.0", 8888);
$server->on('open', function (swoole_websocket_server $server, $request) {
echo "server: handshake success with fd{$request->fd}\n";
});
$server->on('message', function (swoole_websocket_server $server, $frame) {
echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
$server->push($frame->fd, "this is server");
});
$server->on('close', function ($ser, $fd) {
echo "client {$fd} closed\n";
});
$server->start();

swoole是一個(gè)php的擴(kuò)展,安裝方式可以參考這里:php安裝swoole擴(kuò)展的方法

本文先寫到這里,下一篇會寫一些更具體的操作,感興趣的朋友請繼續(xù)關(guān)注本站。謝謝!

相關(guān)文章

  • php二維碼生成以及下載實(shí)現(xiàn)

    php二維碼生成以及下載實(shí)現(xiàn)

    這篇文章主要介紹了php二維碼生產(chǎn)以及下載實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • PHP論壇實(shí)現(xiàn)積分系統(tǒng)的思路代碼詳解

    PHP論壇實(shí)現(xiàn)積分系統(tǒng)的思路代碼詳解

    這篇文章主要介紹了PHP論壇實(shí)現(xiàn)積分系統(tǒng)的思路,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),文中通過代碼給大家補(bǔ)充介紹了thinkphp刪除圖片的方法實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2020-06-06
  • 跟我學(xué)Laravel之安裝Laravel

    跟我學(xué)Laravel之安裝Laravel

    本文主要介紹了安裝Laravel框架的幾種方法,以及Laravel框架的服務(wù)器環(huán)境要求及相關(guān)配置,非常實(shí)用,有需要的朋友可以參考下
    2014-10-10
  • 日常整理PHP中簡單的圖形處理(經(jīng)典)

    日常整理PHP中簡單的圖形處理(經(jīng)典)

    本篇文章是小編日常整理的php圖形處理,如何使用GD2函數(shù)在照片上添加文字,使用GD2函數(shù)創(chuàng)建一個(gè)4位的驗(yàn)證碼。對本文內(nèi)容感興趣的朋友可以了解了解
    2015-10-10
  • php二維數(shù)組轉(zhuǎn)成字符串示例

    php二維數(shù)組轉(zhuǎn)成字符串示例

    這篇文章主要介紹了php二維數(shù)組轉(zhuǎn)成字符串示例,需要的朋友可以參考下
    2014-02-02
  • tp5(thinkPHP5)操作mongoDB數(shù)據(jù)庫的方法

    tp5(thinkPHP5)操作mongoDB數(shù)據(jù)庫的方法

    這篇文章主要介紹了tp5(thinkPHP5)操作mongoDB數(shù)據(jù)庫的方法,結(jié)合實(shí)例形式簡單分析了mongoDB數(shù)據(jù)庫及thinkPHP5連接、查詢MongoDB數(shù)據(jù)庫的基本操作技巧,需要的朋友可以參考下
    2018-01-01
  • php workerman定時(shí)任務(wù)的實(shí)現(xiàn)代碼

    php workerman定時(shí)任務(wù)的實(shí)現(xiàn)代碼

    這篇文章主要介紹了php workerman定時(shí)任務(wù)的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • Laravel模型間關(guān)系設(shè)置分表的方法示例

    Laravel模型間關(guān)系設(shè)置分表的方法示例

    這篇文章主要給大家介紹了關(guān)于Laravel模型間關(guān)系設(shè)置分表的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • CodeIgniter框架數(shù)據(jù)庫事務(wù)處理的設(shè)計(jì)缺陷和解決方案

    CodeIgniter框架數(shù)據(jù)庫事務(wù)處理的設(shè)計(jì)缺陷和解決方案

    這篇文章主要介紹了CodeIgniter框架數(shù)據(jù)庫事務(wù)處理的設(shè)計(jì)缺陷和解決方案,也可以說是一個(gè)小BUG,使用CodeIgniter事務(wù)的朋友會遇到這個(gè)問題,需要的朋友可以參考下
    2014-07-07
  • 微信支付開發(fā)交易通知實(shí)例

    微信支付開發(fā)交易通知實(shí)例

    本文主要介紹如何使用 JS API支付時(shí)如何獲得交易通知,并提供代碼實(shí)例,希望對開發(fā)微信支付的小伙伴有所幫助
    2016-07-07

最新評論