這篇文章主要介紹了swoole各種服務(wù)器的區(qū)別是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
十余年的方山網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整方山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“方山網(wǎng)站設(shè)計”,“方山網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
server.php
//創(chuàng)建Server對象,監(jiān)聽 127.0.0.1:9501端口 $serv = new Swoole\Server("127.0.0.1", 9501); //監(jiān)聽連接進入事件 $serv->on('Connect', function ($serv, $fd) { echo "Client: Connect.\n"; }); //監(jiān)聽數(shù)據(jù)接收事件 $serv->on('Receive', function ($serv, $fd, $from_id, $data) { $serv->send($fd, "Server: ".$data); }); //監(jiān)聽連接關(guān)閉事件 $serv->on('Close', function ($serv, $fd) { echo "Client: Close.\n"; }); //啟動服務(wù)器 $serv->start();
這里就創(chuàng)建了一個TCP服務(wù)器,監(jiān)聽本機9501端口。它的邏輯很簡單,當客戶端Socket通過網(wǎng)絡(luò)發(fā)送一個 hello 字符串時,服務(wù)器會回復一個 Server: hello 字符串。
Server是異步服務(wù)器,所以是通過監(jiān)聽事件的方式來編寫程序的。當對應(yīng)的事件發(fā)生時底層會主動回調(diào)指定的函數(shù)。如當有新的TCP連接進入時會執(zhí)行onConnect事件回調(diào),當某個連接向服務(wù)器發(fā)送數(shù)據(jù)時會回調(diào)onReceive函數(shù)。
UDP服務(wù)器與TCP服務(wù)器不同,UDP沒有連接的概念。啟動Server后,客戶端無需Connect,直接可以向Server監(jiān)聽的9502端口發(fā)送數(shù)據(jù)包。對應(yīng)的事件為onPacket。
$clientInfo是客戶端的相關(guān)信息,是一個數(shù)組,有客戶端的IP和端口等內(nèi)容調(diào)用 $server->sendto 方法向客戶端發(fā)送數(shù)據(jù)
Http服務(wù)器只需要關(guān)注請求響應(yīng)即可,所以只需要監(jiān)聽一個onRequest事件。當有新的Http請求進入就會觸發(fā)此事件。事件回調(diào)函數(shù)有2個參數(shù),一個是$request對象,包含了請求的相關(guān)信息,如GET/POST請求的數(shù)據(jù)。
另外一個是response對象,對request的響應(yīng)可以通過操作response對象來完成。$response->end()方法表示輸出一段HTML內(nèi)容,并結(jié)束此請求。
0.0.0.0 表示監(jiān)聽所有IP地址,一臺服務(wù)器可能同時有多個IP,如127.0.0.1本地回環(huán)IP、192.168.1.100局域網(wǎng)IP、210.127.20.2 外網(wǎng)IP,這里也可以單獨指定監(jiān)聽一個IP9501 監(jiān)聽的端口,如果被占用程序會拋出致命錯誤,中斷執(zhí)行。
WebSocket服務(wù)器是建立在Http服務(wù)器之上的長連接服務(wù)器,客戶端首先會發(fā)送一個Http的請求與服務(wù)器進行握手。
握手成功后會觸發(fā)onOpen事件,表示連接已就緒,onOpen函數(shù)中可以得到$request對象,包含了Http握手的相關(guān)信息,如GET參數(shù)、Cookie、Http頭信息等。
建立連接后客戶端與服務(wù)器端就可以雙向通信了。
客戶端向服務(wù)器端發(fā)送信息時,服務(wù)器端觸發(fā)onMessage事件回調(diào)服務(wù)器端可以調(diào)用$server->push()向某個客戶端(使用$fd標識符)發(fā)送消息服務(wù)器端可以設(shè)置onHandShake事件回調(diào)來手工處理WebSocket握手。
swoole_http_server是swoole_server的子類,內(nèi)置了Http的支持swoole_websocket_server是swoole_http_server的子類, 內(nèi)置了WebSocket的支持
感謝你能夠認真閱讀完這篇文章,希望小編分享的“swoole各種服務(wù)器的區(qū)別是什么”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!
當前文章:swoole各種服務(wù)器的區(qū)別是什么
文章URL:http://www.chinadenli.net/article8/gepcip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)頁設(shè)計公司、、外貿(mào)網(wǎng)站建設(shè)、建站公司、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)