成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

初識 swoole【下】

yeooo / 2023人閱讀

摘要:前言接初識上,這篇主要是異步問題有收獲的話請加顆小星星,沒有收獲的話可以反對沒有幫助舉報(bào)三連代碼倉庫初識下異步任務(wù)設(shè)置異步任務(wù)的工作進(jìn)程數(shù)量連接連接歡迎大山驢回調(diào)投遞異步任務(wù)觸發(fā)異步任務(wù)服務(wù)端回復(fù)說處理異步任務(wù)新的異步任務(wù)

前言:接初識swoole【上】,這篇主要是異步問題

有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報(bào)三連

代碼倉庫

初識swoole【下】

6、異步任務(wù)
set(["task_worker_num" => 4]);
// connect 連接
$server->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) {
    //投遞異步任務(wù)
    $task_id = $server->task($data);
    dump("觸發(fā)異步任務(wù)ID={$task_id}");
    $server->send($fd, "服務(wù)端回復(fù):{$data}
");
    foreach ($server->connections as $connection) {
        if ($connection != $fd){
            $server->send($connection, "{$fd}說{$data}");
        }
    }
});
// task 處理異步任務(wù)
$server->on("task", function (swoole_server $server, $task_id, $from_id, $data){
    dump("新的異步任務(wù)[ID={$task_id}]");
    //返回任務(wù)執(zhí)行的結(jié)果
    $server->finish("{$data}完成了");
});
// finish 處理異步任務(wù)的結(jié)果
$server->on("finish", function (swoole_server $server, $task_id, $data){
    dump("異步任務(wù)[{$task_id}]已經(jīng)完成[{$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 async.php

telnet 127.0.0.1 9505
7、同步TCP客戶端
connect(HOST, 9501, 0.5)){
    dump("連接失敗");
}
// send
if (! $client->send("你個山驢逼
")) {
    dump("發(fā)送失敗");
}
// receive
if (! $data = $client->recv()) {
    dump("接收失敗");
}
dump($data);
// close
$client->close();
php tcp_server.php

php tcp_sync_client.php
8、異步TCP客戶端
on("connect", function (SwooleClient $cli){
    $cli->send("你個山驢逼
");
});
// receive
$client->on("receive", function (SwooleClient $cli, $data){
    dump("接收:{$data}");
});
// error
$client->on("error", function (SwooleClient $cli){
    dump("連接失敗");
});
// close
$client->on("close", function (SwooleClient $cli){
    dump("連接關(guān)閉");
});
$client->connect(HOST, 9501, 0.5);
php tcp_server.php

php tcp_async_client.php
9、異步客戶端

mysql

// 異步mysql客戶端
$db = new SwooleMysql();
$config = [
    "host" => "127.0.0.1",
    "user" => "root",
    "password" => "root",
    "database" => "mac",
    "port" => "3307",
];

$db->connect($config, function (SwooleMysql $db, $rs) {
    $db->query("SELECT * FROM user", function (SwooleMysql $db, $rs) {
        dump($rs);
        $db->close();
    });
});

http

// 異步http客戶端
$cli = new SwooleHttpClient("127.0.0.1", 80);
$cli->setHeaders(array("User-Agent" => "swoole-http-client"));
$cli->setCookies(array("test" => "value"));

$cli->get("/login", function (SwooleHttpClient $cli) {
    dump($cli->statusCode);
    dump($cli->cookies);
    dump($cli->headers);
});
10、協(xié)程客戶端
// 協(xié)程mysql客戶端
$http = new swoole_http_server(HOST, 9506);
$http->on("request", function ($request, $response) {
    $db = new SwooleCoroutineMysql();
    $db->connect([
        "host" => "127.0.0.1",
        "user" => "root",
        "password" => "root",
        "database" => "mac",
        "port" => "3307",
    ]);
    $data = $db->query("select * from user");
    dump($data);
    $response->end(json_encode($data));
});
$http->start();
php coroutine_client.php

curl -XGET "127.0.0.1:9506"

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29837.html

相關(guān)文章

  • Swoole學(xué)習(xí)手記(一)初識Swoole

    摘要:目錄初識創(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ò)異...

    yeyan1996 評論0 收藏0
  • 初識 swoole【上】

    摘要:前言都是為了生存有收獲的話請加顆小星星,沒有收獲的話可以反對沒有幫助舉報(bào)三連代碼倉庫初始上一什么是面向生產(chǎn)環(huán)境的異步網(wǎng)絡(luò)通信引擎使開發(fā)人員可以編寫高性能的異步并發(fā),服務(wù)。 前言:都是為了生存 有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報(bào)三連 代碼倉庫 初始swoole【上】 一、什么是swoole Swoole:面向生產(chǎn)環(huán)境的 PHP 異步網(wǎng)絡(luò)通信引擎 使 PHP...

    scola666 評論0 收藏0
  • swoole入門4-初識swoole

    摘要:當(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ù),來進(jìn)行后續(xù)的處理。請求到來時創(chuàng)建,請求結(jié)束后銷毀。 運(yùn)行流程圖 showImg(https://segmentfault.com/img/remote/1460000017207791);showImg(https://s...

    forsigner 評論0 收藏0
  • 【宇潤日常瘋測-007】Swoole 協(xié)程與傳統(tǒng) fpm 同步模式比較

    摘要:初識協(xié)程執(zhí)行結(jié)果協(xié)程與同步模式比較我們一直在說協(xié)程適合用于密集場景,在同樣的硬件配置環(huán)境下,它會比傳統(tǒng)的同步模式承載更多的訪問量。假設(shè)一次查詢?yōu)?,在傳統(tǒng)同步模式下,當(dāng)前進(jìn)程在這的時間里,是不能做其它操作的。同步模式,耗費(fèi)左右的是。 如果說數(shù)組是 PHP 的精髓,數(shù)組玩得不6的,根本不能算是會用PHP。那協(xié)程對于 Swoole 也是同理,不理解協(xié)程去用 Swoole,那就是在瞎用。 首先...

    henry14 評論0 收藏0
  • swoole學(xué)習(xí)手記(三)創(chuàng)建服務(wù)器()

    摘要:目錄初識創(chuàng)建服務(wù)器上創(chuàng)建服務(wù)器下異步任務(wù)持續(xù)更新中。。。而它的最大特點(diǎn)就是,服務(wù)器可以主動向客戶端推送信息,客戶端也可以主動向服務(wù)器發(fā)送信息,是真正的雙向平等對話,屬于服務(wù)器推送技術(shù)的一種。 目錄 初識Swoole 創(chuàng)建服務(wù)器(上) 創(chuàng)建服務(wù)器(下) 異步任務(wù)task 持續(xù)更新中。。。 1.創(chuàng)建HttpServer服務(wù)器 HttpServer是基于swoole_server,所以s...

    aikin 評論0 收藏0

發(fā)表評論

0條評論

yeooo

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<