環境配置:
swoole 1.9.3、centos6.5(虛擬機器)、php7.01
思路:
①通過server中的collections取出fd
②寫乙個
admin.html(管理員推送頁面) 與
client.html(客戶端),html頁面的websocket自行可編寫
並在server.php中message事件用迴圈push資料(server中的collections取出fdfd組)
[php]view plain
copy
$serv->on('message', function ($server, $frame) :".$frame->data);
} }
});
注:其實這裡需要admin.html傳送資料時傳token並在message事件中驗證是否管理員請求(資料庫操作),是才執行推送,否則不做操作
server.php**如下:
[php]view plain
copy
<?php
$serv = new swoole\websocket\server("0.0.0.0", 9502);
$serv->on('open', function ($server, $req) );
$serv->on('message', function ($server, $frame) :".$frame->data);
} }
});
$serv->on('close', function ($server, $fd) );
$serv->start();
效果圖:
注:客戶端websocket自行編寫。
上面推送小例項實現中有點問題,並未將客戶端與服務端分離開來,以下分離開。
因為swoole_websocket_server 繼承自 swoole_http_server,所以可在websocket中用request事件,另外用global引入用於在request事件中push
①首先admin.html改為http請求,且client.html保持不變
②將message事件的push部分刪掉,如下:
[php]view plain
copy
$serv->on('message', function ($server, $frame) use($redis) );
③新增http的request事件,如下:
[php]view plain
copy
//服務端請求更新資料,這裡是http方式
$serv->on('request', function ($req, $respone) :".$req->post["test"]);
} $respone->end("success");
} });
wireshark如何抓取WebSocket資料報
websocket目前在web端使用廣泛,可以使用websocket來傳輸資料,解決了web端無法跟伺服器維持高效的長鏈結的問題。什麼是websocket呢?websocket是一種瀏覽器與伺服器進行全雙工通訊的應用層協議。它基於 tcp 傳輸協議,並復用 http 的握手通道,可以在瀏覽器裡使用,...
簡單嘗試 express 使用 websocket
node 使用 express 框架 先安裝 express 和 express ws yarn add express express ws服務端server.js var express require express var expressws require express ws expre...
Swoole多程序的實現
使用swoole多程序上傳檔案到網宿伺服器 created by phpstorm.user leeo date 2016 9 29 time 15 26 引入檔案上傳類include once filehandleclass.php obj fetch new filehandleclass wo...