摘要:前言都是為了生存有收獲的話請加顆小星星,沒有收獲的話可以反對沒有幫助舉報三連代碼倉庫初始上一什么是面向生產(chǎn)環(huán)境的異步網(wǎng)絡(luò)通信引擎使開發(fā)人員可以編寫高性能的異步并發(fā),服務(wù)。
前言:都是為了生存
有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報三連
代碼倉庫
初始swoole【上】
一、什么是swooleSwoole:面向生產(chǎn)環(huán)境的 PHP 異步網(wǎng)絡(luò)通信引擎
使 PHP 開發(fā)人員可以編寫高性能的異步并發(fā) TCP、UDP、Unix Socket、HTTP,WebSocket 服務(wù)。Swoole 可以廣泛應(yīng)用于互聯(lián)網(wǎng)、移動通信、企業(yè)軟件、云計算、網(wǎng)絡(luò)游戲、物聯(lián)網(wǎng)(IOT)、車聯(lián)網(wǎng)、智能家居等領(lǐng)域。 使用 PHP + Swoole 作為網(wǎng)絡(luò)通信框架,可以使企業(yè) IT 研發(fā)團隊的效率大大提升,更加專注于開發(fā)創(chuàng)新產(chǎn)品。
二、安裝 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服務(wù)器on("connect", function (swoole_server $server, $fd) { dump("{$fd}連接"); $server->send($fd, "歡迎{$fd}大山驢 "); }); // receive 回調(diào) $server->on("receive", function (swoole_server $server, $fd, $from_id, $data) { $server->send($fd, "服務(wù)端回復(fù):{$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}關(guān)閉"); 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服務(wù)器
// new on("Packet", function (swoole_server $server, $data, $clientInfo) { $server->sendto($clientInfo["address"], $clientInfo["port"], "服務(wù)器回復(fù): {$data}"); dump($clientInfo); }); // start $server->start();
php udp_server.php netcat -u 127.0.0.1 95023、Web服務(wù)器
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服務(wù)器
服務(wù)端
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, "服務(wù)端回復(fù): {$frame->data} "); }); // close $ws->on("close", function (SwooleWebSocketServer $ws, $fd) { dump("{$fd}關(guān)閉"); }); // start $ws->start();
客戶端
let ws = new WebSocket("ws://127.0.0.1:9504"); ws.onopen = function (ws) { console.log("連接服務(wù)器"); }; ws.onclose = function (ws) { console.log("斷開連接"); }; ws.onmessage = function (ws) { console.log("接收來自服務(wù)器的消息:" + ws.data); }; ws.onerror = function (ws, event) { console.log("錯誤了:" + ws.data); };5、定時器
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/29838.html
摘要:目錄初識創(chuàng)建服務(wù)器上創(chuàng)建服務(wù)器下異步任務(wù)持續(xù)更新中。。。參加工作有一段時間了,偶爾會聽到,對我這種小白粗略看下文檔都會覺得很牛逼。個人理解就是解決這樣應(yīng)用場景的。 目錄 初識Swoole 創(chuàng)建服務(wù)器(上) 創(chuàng)建服務(wù)器(下) 異步任務(wù)task 持續(xù)更新中。。。 參加工作有一段時間了,偶爾會聽到swoole,對我這種PHP小白粗略看下文檔都會覺得很牛逼。由于學(xué)習(xí)成本比較高,自身對網(wǎng)絡(luò)異...
摘要:前言接初識上,這篇主要是異步問題有收獲的話請加顆小星星,沒有收獲的話可以反對沒有幫助舉報三連代碼倉庫初識下異步任務(wù)設(shè)置異步任務(wù)的工作進程數(shù)量連接連接歡迎大山驢回調(diào)投遞異步任務(wù)觸發(fā)異步任務(wù)服務(wù)端回復(fù)說處理異步任務(wù)新的異步任務(wù) 前言:接初識swoole【上】,這篇主要是異步問題 有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報三連 代碼倉庫 初識swoole【下】 6、異...
摘要:當(dāng)某種網(wǎng)絡(luò)事件發(fā)生時,會回調(diào)用戶設(shè)置的指定回調(diào)函數(shù)。承擔(dān)了底層網(wǎng)絡(luò)事件的監(jiān)聽及各種底層事件處理,當(dāng)收到請求時,會觸發(fā)事件提醒,然后將控制權(quán)轉(zhuǎn)交預(yù)先注冊的事件回調(diào)函數(shù),來進行后續(xù)的處理。請求到來時創(chuàng)建,請求結(jié)束后銷毀。 運行流程圖 showImg(https://segmentfault.com/img/remote/1460000017207791);showImg(https://s...
摘要:是一個請求對象,包含了客戶端發(fā)來的握手請求信息事件函數(shù)中可以調(diào)用向客戶端發(fā)送數(shù)據(jù)或者調(diào)用關(guān)閉連接事件回調(diào)是可選的當(dāng)服務(wù)器收到來自客戶端的數(shù)據(jù)幀時會回調(diào)此函數(shù)。 前言:了解概念之后就應(yīng)該練練手啦,不然就是巨嬰 有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報三連 代碼倉庫 實戰(zhàn)swoole【聊天室】 在線體驗 準(zhǔn)備工作 需要先看初識swoole【上】,了解基本的服務(wù)端...
摘要:初識協(xié)程執(zhí)行結(jié)果協(xié)程與同步模式比較我們一直在說協(xié)程適合用于密集場景,在同樣的硬件配置環(huán)境下,它會比傳統(tǒng)的同步模式承載更多的訪問量。假設(shè)一次查詢?yōu)椋趥鹘y(tǒng)同步模式下,當(dāng)前進程在這的時間里,是不能做其它操作的。同步模式,耗費左右的是。 如果說數(shù)組是 PHP 的精髓,數(shù)組玩得不6的,根本不能算是會用PHP。那協(xié)程對于 Swoole 也是同理,不理解協(xié)程去用 Swoole,那就是在瞎用。 首先...
閱讀 2679·2023-04-25 20:28
閱讀 1849·2021-11-22 09:34
閱讀 3687·2021-09-26 10:20
閱讀 1834·2021-09-22 16:05
閱讀 3085·2021-09-09 09:32
閱讀 2502·2021-08-31 09:40
閱讀 2099·2019-08-30 13:56
閱讀 3320·2019-08-29 17:01