這篇文章主要介紹了如何解決swoole客戶端無(wú)法連接的問題,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)公司致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷,提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營(yíng)銷、重慶小程序開發(fā)、公眾號(hào)商城、等建站開發(fā),創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢(shì)。swoole客戶端無(wú)法連接怎么辦?
4種客戶端連接服務(wù)器的方式介紹
四種客戶端連接方式:瀏覽器連接
server.php: <?php //創(chuàng)建Server對(duì)象,監(jiān)聽 10.211.55.15:9501端口 $serv = new swoole_server("10.211.55.15", 9501); // 10.211.55.15 是我們Swoole服務(wù)器地址 //監(jiān)聽數(shù)據(jù)接收事件 $serv->on('receive', function ($serv, $fd, $from_id, $data) { echo $data; //打印 接收到的數(shù)據(jù) $serv->send($fd, "I am swoole"); //發(fā)送字符串給客戶端 $serv->close($fd); // 注意:官方并不建議在這里關(guān)閉掉 }); //啟動(dòng)服務(wù)器 $serv->start();
仔細(xì)看上面代碼,創(chuàng)建服務(wù)之后,我們監(jiān)聽了數(shù)據(jù)接收事件,打印接收到的數(shù)據(jù),然后輸出一個(gè)I am swoole字符串。
同樣的執(zhí)行server.php,終端命令行會(huì)“等待狀態(tài)”:
php server.php
然后我們使用火狐瀏覽器作為客戶端,請(qǐng)求Swoole服務(wù)器:http://10.211.55.15:9501/
此時(shí)(服務(wù)器)終端下會(huì)輸出類似如下:
GET /favicon.ico HTTP/1.1 Host: 10.211.55.15:9501 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:57.0) Gecko/20100101 Firefox/57.0 Accept: */* Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: keep-alive
這正是一段HTTP協(xié)議內(nèi)容。
為什么可以通過(guò)瀏覽器訪問?
瀏覽器可以理解為一個(gè)socket客戶端,通過(guò)HTTP協(xié)議的交互完成傳輸過(guò)程。
HTTP協(xié)議(應(yīng)用層)是建立在TCP協(xié)議(傳輸層)基礎(chǔ)之上,瀏覽器發(fā)出一次請(qǐng)求,會(huì)按照HTTP協(xié)議的規(guī)定發(fā)送“字符串”,請(qǐng)求完成后則端口連接。
上面我們通過(guò)瀏覽器的方式來(lái)訪問Swoole服務(wù)器,可能部分瀏覽器不行,因我們只是簡(jiǎn)單的輸出一個(gè)字符串,并沒有按照HTTP協(xié)議來(lái)完成。
四種客戶端連接方式:telnet
首先要稍微修改一下我們服務(wù)端代碼(server.php),注釋掉下面這行:
$serv->close($fd); // 注意:官方并不建議在這里關(guān)閉掉
如果沒有安裝telnet,使用如下命令安裝:
yum install telnet -y
操作方法:
telnet 10.211.55.15 9501 #連接后,敲擊鍵盤`ctrl+]`鍵,就可以發(fā)送消息了, #比如我們輸入 hello #會(huì)緊接著一行顯示 I am swoole
四種客戶端連接方式:自己寫socket
首先要確定是否安裝了socket擴(kuò)展。
使用原生的php代碼編寫一個(gè)客戶端client.php:
$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); socket_connect($socket,"10.211.55.15", 9501); socket_write($socket,"hello swoole"); // 讀 $out = socket_read($socket,1024); echo $out; socket_close($socket);
四種客戶端連接方式:Swoole官方提供的客戶端
/tupian/20230522/ppre><?php $client = new swoole_client(SWOOLE_SOCK_TCP); if (!$client->connect("10.211.55.15", 9501, -1)) { exit("connect failed. Error: {$client->errCode}\n"); } $client->send("hello world\n"); echo $client->recv(); //打印 接收到的數(shù)據(jù) $client->close();
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何解決swoole客戶端無(wú)法連接的問題”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
新聞標(biāo)題:如何解決swoole客戶端無(wú)法連接的問題-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)路徑:http://jinyejixie.com/article2/isiic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站營(yíng)銷、網(wǎng)站設(shè)計(jì)公司、企業(yè)建站、網(wǎng)站制作、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
營(yíng)銷型網(wǎng)站建設(shè)知識(shí)