国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

swoole學習手記(三)創建服務器(下)

aikin / 2092人閱讀

摘要:目錄初識創建服務器上創建服務器下異步任務持續更新中。。。而它的最大特點就是,服務器可以主動向客戶端推送信息,客戶端也可以主動向服務器發送信息,是真正的雙向平等對話,屬于服務器推送技術的一種。

目錄

初識Swoole

創建服務器(上)

創建服務器(下)

異步任務task

持續更新中。。。

1.創建HttpServer服務器

HttpServer是基于swoole_server,所以swoole_server下的方法HttpServer都可以使用
httpsevrer它只能被客戶端喚起

1.測試

on("request", function($request, $response) {
    echo "nihao";
    $response->end("hello swoole");
});

$http->start();

php執行一下,打開瀏覽器

服務器

這里我們發現了一個怪象
1.echo(var_dump,print_rd)的內容在服務器現實
2.而瀏覽器的內容只能通過end(內容)的方式
end只能調用一次,如果需要分多次向客戶端發送數據,請使用write方法

擴展:咦這個,很像我們平時訪問的 XXX.com:80 如果我們想要訪問下面的文件那怎么辦?
是不是想起我們之前tcp和udp都有用到的一個函數 set,這個函數我把它理解為配置,那么我們就懟著它進行配置

$http->set([
      "enable_static_handler" => true,
      "document_root" => "/www/wwwroot/server",//設置根目錄這里根據你自己的路徑來寫
    
]);

是不是很像配置虛擬地址?我們試著訪問server目錄下的test.html

有了!!
一般來說設置了document_root的http_server流程是這樣的:
1.先會去根據url去訪問document_root相對的路徑下的文件,跟配置域名訪問文件的原理差不多
2.如果這個文件沒有,那么我們http_server才會順著執行 $http->on("request"function($request, $response));做出相應的相應


2.創建WebSocket服務器

1.特性:
(1)HTTP 協議有一個缺陷:通信只能由客戶端發起,做不到服務器主動向客戶端推送信息。
而WebSocket它的最大特點就是,服務器可以主動向客戶端推送信息,客戶端也可以主動向服務器發送信息,是真正的雙向平等對話,屬于服務器推送技術的一種。
(2)Web_Socket繼承http_server

由于web_server全雙工這個特性所以很適合做聊天室

2.說到這我們就來做一個簡單的測試!
(1)我們先寫一個web_server.php的文件

$server = new swoole_websocket_server("0.0.0.0", 8811);
//Web_Socket繼承http_server,所以它也可以擁有同樣的set方法
//包括 $server->on("request", function($request, $response) {}也是可以有的
$server->set(
    [
        "enable_static_handler" => true,
        "document_root" => "/www/wwwroot/server",
    ]
);

//監聽websocket連接打開事件
$server->on("open", "onOpen");
function onOpen($server, $request) {
     echo "fd為:".$request->fd."已經上線
";
}

// 監聽ws消息事件
$server->on("message", function ( $server, $frame) {
    var_dump($frame);
    $msg="fd為".$frame->fd."說:".$frame->data;//$frame->data為客戶端傳遞過來的信息
    $server->push($frame->fd, $msg);
});

$server->on("close", function ($server, $fd) {
    echo "client {$fd} closed
";
});

$server->start();

(2)然后再寫一個客戶端文件


你可以根據這個來寫一個基于web_socket的聊天室,十分有趣
 

學習了tcp,udp,websocket,http的服務,我們可以做一波總結:

如果這篇文章對你有用,可以點個贊或者是收藏,算是對作者的鼓勵~

文檔地址傳送門:https://wiki.swoole.com/wiki/...
推薦singwa老師的視頻教程:https://coding.imooc.com/clas...

另附上小弟網站。。。www.entercode.cn 推廣一波...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28648.html

相關文章

  • Swoole學習手記(一)初識Swoole

    摘要:目錄初識創建服務器上創建服務器下異步任務持續更新中。。。參加工作有一段時間了,偶爾會聽到,對我這種小白粗略看下文檔都會覺得很牛逼。個人理解就是解決這樣應用場景的。 目錄 初識Swoole 創建服務器(上) 創建服務器(下) 異步任務task 持續更新中。。。 參加工作有一段時間了,偶爾會聽到swoole,對我這種PHP小白粗略看下文檔都會覺得很牛逼。由于學習成本比較高,自身對網絡異...

    yeyan1996 評論0 收藏0
  • swoole學習手記(二)創建務器(上)

    摘要:目錄初識創建服務器上創建服務器下異步任務持續更新中。。。啟動后,客戶端無需,直接可以向監聽的端口發送數據包。 目錄 初識Swoole 創建服務器(上) 創建服務器(下) 異步任務task 持續更新中。。。 1.創建tcp服務器 先照著文檔創建一個tcp服務器

    cppowboy 評論0 收藏0
  • swoole學習手記(四)異步任務task

    摘要:目錄初識創建服務器上創建服務器下異步任務持續更新中。。。什么是異步任務把當前的任務異步投遞到進程池中執行,不影響接下來的事務。 目錄 初識Swoole 創建服務器(上) 創建服務器(下) 異步任務task 持續更新中。。。 什么是異步任務? 1.把當前的任務異步投遞到TaskWorker進程池中執行,不影響接下來的事務。舉個栗子: showImg(https://segmentfa...

    vincent_xyb 評論0 收藏0
  • webpack入門學習手記(二)

    摘要:例如現在的入門學習手記系列。收到粉絲留言和打賞的喜悅。安裝上一篇入門學習手記一,主要是介紹了的核心概念,是整個學習過程的基礎知識。新生成的類似如下入門學習手記因為生成的內容過多,我直接省略掉了。 showImg(https://segmentfault.com/img/bVbk5Nd?w=1150&h=599); 本人微信公眾號:前端修煉之路,歡迎關注。 最近開始想要維護一個個人的公眾...

    Joyven 評論0 收藏0
  • webpack入門學習手記

    摘要:本人微信公眾號前端修煉之路,歡迎關注。距離上一次更新這個系列,過去了兩天。最近實在是有點忙,沒有擠出時間整理。感覺日更還真是困難 showImg(https://segmentfault.com/img/bVbk5Nd?w=1150&h=599); 本人微信公眾號:前端修煉之路,歡迎關注。 距離上一次更新這個系列,過去了兩天。最近實在是有點忙,沒有擠出時間整理。感覺日更還真是困難

    rozbo 評論0 收藏0

發表評論

0條評論

aikin

|高級講師

TA的文章

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