摘要:前言都是為了生存有收獲的話請加顆小星星,沒有收獲的話可以反對沒有幫助舉報三連代碼倉庫初始上一什么是面向生產環(huán)境的異步網絡通信引擎使開發(fā)人員可以編寫高性能的異步并發(fā),服務。
前言:都是為了生存
有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報三連
代碼倉庫
初始swoole【上】
一、什么是swooleSwoole:面向生產環(huán)境的 PHP 異步網絡通信引擎
使 PHP 開發(fā)人員可以編寫高性能的異步并發(fā) TCP、UDP、Unix Socket、HTTP,WebSocket 服務。Swoole 可以廣泛應用于互聯(lián)網、移動通信、企業(yè)軟件、云計算、網絡游戲、物聯(lián)網(IOT)、車聯(lián)網、智能家居等領域。 使用 PHP + Swoole 作為網絡通信框架,可以使企業(yè) IT 研發(fā)團隊的效率大大提升,更加專注于開發(fā)創(chuàng)新產品。
二、安裝 1、peclpecl install swoole2、源碼安裝
curl -O https://pecl.php.net/get/swoole-4.2.5.tgz tar -zxvf swoole-4.2.5.tgz cd swoole-4.2.5.tgz phpize ./configure make && make install # 加入到php.ini中 php --ini extension=swoole.so三、基本入門
注意:示例代碼都引入了"symfony/var-dumper"包進行美化打印
Swoole的絕大部分功能只能用于cli命令行環(huán)境
1、TCP服務器on("connect", function (swoole_server $server, $fd) { dump("{$fd}連接"); $server->send($fd, "歡迎{$fd}大山驢 "); }); // receive 回調 $server->on("receive", function (swoole_server $server, $fd, $from_id, $data) { $server->send($fd, "服務端回復:{$data} "); foreach ($server->connections as $connection) { if ($connection != $fd){ $server->send($connection, "{$fd}說{$data}"); } } }); // close $server->on("close", function (swoole_server $server, $fd) { dump("{$fd}關閉"); foreach ($server->connections as $connection) { if ($connection != $fd){ $server->send($connection, "{$fd}斷開連接"); } } }); // start $server->start();
php tcp_server.php telnet 127.0.0.1 95012、UDP服務器
// new on("Packet", function (swoole_server $server, $data, $clientInfo) { $server->sendto($clientInfo["address"], $clientInfo["port"], "服務器回復: {$data}"); dump($clientInfo); }); // start $server->start();
php udp_server.php netcat -u 127.0.0.1 95023、Web服務器
on("request", function (SwooleHttpRequest $request, SwooleHttpResponse $response) { dump($request->get, $request->post); $response->header("Content-Type", "text/html; charset=utf-8"); $response->end("Hello Swoole. #" . mt_rand(1000, 9999) . "
"); }); // start $http->start();
php web_server.php curl -XGET "127.0.0.1:9503?id=1&name=aa&age=26" curl -XPOST "127.0.0.1:9503?id=1&name=aa&age=26" -d "love=like"4、WebSocket服務器
服務端
on("open", function (SwooleWebSocketServer $ws, SwooleHttpRequest $request) { dump($request->fd, $request->get, $request->server); $ws->push($request->fd, "你是大山驢 "); }); // message $ws->on("message", function (SwooleWebSocketServer $ws, $frame) { dump("消息: {$frame->data} "); $ws->push($frame->fd, "服務端回復: {$frame->data} "); }); // close $ws->on("close", function (SwooleWebSocketServer $ws, $fd) { dump("{$fd}關閉"); }); // start $ws->start();
客戶端
let ws = new WebSocket("ws://127.0.0.1:9504"); ws.onopen = function (ws) { console.log("連接服務器"); }; ws.onclose = function (ws) { console.log("斷開連接"); }; ws.onmessage = function (ws) { console.log("接收來自服務器的消息:" + ws.data); }; ws.onerror = function (ws, event) { console.log("錯誤了:" + ws.data); };5、定時器
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/29838.html
摘要:目錄初識創(chuàng)建服務器上創(chuàng)建服務器下異步任務持續(xù)更新中。。。參加工作有一段時間了,偶爾會聽到,對我這種小白粗略看下文檔都會覺得很牛逼。個人理解就是解決這樣應用場景的。 目錄 初識Swoole 創(chuàng)建服務器(上) 創(chuàng)建服務器(下) 異步任務task 持續(xù)更新中。。。 參加工作有一段時間了,偶爾會聽到swoole,對我這種PHP小白粗略看下文檔都會覺得很牛逼。由于學習成本比較高,自身對網絡異...
摘要:前言接初識上,這篇主要是異步問題有收獲的話請加顆小星星,沒有收獲的話可以反對沒有幫助舉報三連代碼倉庫初識下異步任務設置異步任務的工作進程數(shù)量連接連接歡迎大山驢回調投遞異步任務觸發(fā)異步任務服務端回復說處理異步任務新的異步任務 前言:接初識swoole【上】,這篇主要是異步問題 有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報三連 代碼倉庫 初識swoole【下】 6、異...
摘要:當某種網絡事件發(fā)生時,會回調用戶設置的指定回調函數(shù)。承擔了底層網絡事件的監(jiān)聽及各種底層事件處理,當收到請求時,會觸發(fā)事件提醒,然后將控制權轉交預先注冊的事件回調函數(shù),來進行后續(xù)的處理。請求到來時創(chuàng)建,請求結束后銷毀。 運行流程圖 showImg(https://segmentfault.com/img/remote/1460000017207791);showImg(https://s...
摘要:是一個請求對象,包含了客戶端發(fā)來的握手請求信息事件函數(shù)中可以調用向客戶端發(fā)送數(shù)據或者調用關閉連接事件回調是可選的當服務器收到來自客戶端的數(shù)據幀時會回調此函數(shù)。 前言:了解概念之后就應該練練手啦,不然就是巨嬰 有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報三連 代碼倉庫 實戰(zhàn)swoole【聊天室】 在線體驗 準備工作 需要先看初識swoole【上】,了解基本的服務端...
摘要:初識協(xié)程執(zhí)行結果協(xié)程與同步模式比較我們一直在說協(xié)程適合用于密集場景,在同樣的硬件配置環(huán)境下,它會比傳統(tǒng)的同步模式承載更多的訪問量。假設一次查詢?yōu)?,在傳統(tǒng)同步模式下,當前進程在這的時間里,是不能做其它操作的。同步模式,耗費左右的是。 如果說數(shù)組是 PHP 的精髓,數(shù)組玩得不6的,根本不能算是會用PHP。那協(xié)程對于 Swoole 也是同理,不理解協(xié)程去用 Swoole,那就是在瞎用。 首先...
閱讀 2712·2023-04-25 20:28
閱讀 1900·2021-11-22 09:34
閱讀 3731·2021-09-26 10:20
閱讀 1890·2021-09-22 16:05
閱讀 3119·2021-09-09 09:32
閱讀 2558·2021-08-31 09:40
閱讀 2142·2019-08-30 13:56
閱讀 3345·2019-08-29 17:01