2020AV天堂网,午夜色色视频,美女黄片免费观看,欧美黄色电影网站,亚洲人在线

新聞資訊

新聞資訊
首頁(yè) > 新聞資訊 > 正文內(nèi)容

php只能做網(wǎng)站嗎(PHP做網(wǎng)站)

時(shí)間:2023-11-13 信途科技新聞資訊
前言

眾所周知,PHP用于開(kāi)發(fā)基于HTTP協(xié)議的網(wǎng)站應(yīng)用非常便捷。而HTTP協(xié)議是一種單向的通信協(xié)議,只能接收客戶(hù)端的請(qǐng)求,然后響應(yīng)請(qǐng)求,不能主動(dòng)向客戶(hù)端推送信息。因此,一些實(shí)時(shí)性要求比較高的應(yīng)用,如實(shí)時(shí)聊天、直播應(yīng)用、在線(xiàn)網(wǎng)頁(yè)游戲等,就不適合采用HTTP協(xié)議。即使采用客戶(hù)端主動(dòng)輪詢(xún)的方式來(lái)間接實(shí)現(xiàn)雙向通信,也會(huì)較大地增加服務(wù)器的負(fù)擔(dān),增大代碼的復(fù)雜性,不利于維護(hù)。

雙向通信

那么,是否PHP就無(wú)法用來(lái)開(kāi)發(fā)雙向通信的應(yīng)用呢?

答案是否定的。PHP內(nèi)置socket通信支持,可以與linux程序基于socket進(jìn)行雙向通信。php swoole框架封裝了一個(gè)websocket服務(wù)端,基于此可以很方便地建立一個(gè)與html5的websocket客戶(hù)端進(jìn)行通信的服務(wù)。

一、 Swoole介紹

swoole

Swoole是一個(gè)面向生產(chǎn)環(huán)境的 PHP 異步網(wǎng)絡(luò)通信引擎,使 PHP 開(kāi)發(fā)人員可以編寫(xiě)高性能的異步并發(fā) TCP、UDP、Unix Socket、HTTP,WebSocket 服務(wù)。Swoole 可以廣泛應(yīng)用于互聯(lián)網(wǎng)、移動(dòng)通信、企業(yè)軟件、云計(jì)算、網(wǎng)絡(luò)游戲、物聯(lián)網(wǎng)(IOT)、車(chē)聯(lián)網(wǎng)、智能家居等領(lǐng)域。 使用 PHP + Swoole 作為網(wǎng)絡(luò)通信框架,可以使企業(yè) IT 研發(fā)團(tuán)隊(duì)的效率大大提升。

swoole支持用于搭建多種server,包括http server、websocket server、tcp server、redis server等等。這里我們使用到的是其中的websocket server。

二、WebSocket介紹

WebSocket

WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議。WebSocket通信協(xié)議于2011年被IETF定為標(biāo)準(zhǔn)RFC 6455,并由RFC7936補(bǔ)充規(guī)范。WebSocket API也被W3C定為標(biāo)準(zhǔn)。

WebSocket使得客戶(hù)端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡(jiǎn)單,允許服務(wù)端主動(dòng)向客戶(hù)端推送數(shù)據(jù)。在WebSocket API中,瀏覽器和服務(wù)器只需要完成一次握手,兩者之間就直接可以創(chuàng)建持久性的連接,并進(jìn)行雙向數(shù)據(jù)傳輸。

簡(jiǎn)單地來(lái)說(shuō),websocket協(xié)議實(shí)現(xiàn)了瀏覽器和服務(wù)器之間的雙向通信。而html5原生支持websocket協(xié)議。

三、swoole websocket 服務(wù)端demo

1.安裝swoole

swoole以php擴(kuò)展的形式進(jìn)行加載,首先需要為你的php安裝swoole擴(kuò)展,安裝命令如下:

pecl install swoole

安裝成功后在php.ini文件加上extension=swoole.so加載擴(kuò)展

2.啟動(dòng)服務(wù)端

新建一個(gè)php文件,文件名為server.php,文件內(nèi)容如下:

$server = new Swoole\WebSocket\Server("0.0.0.0", 9501);$server->on('open', function (Swoole\WebSocket\Server $server, $request) { echo "server: handshake success with fd{$request->fd}\n"; });$server->on('message', function (Swoole\WebSocket\Server $server, $frame) { echo "receive from {$frame->fd}:{$frame->data}\n"; $server->push($frame->fd, "this is server"); });$server->on('close', function ($ser, $fd) { echo "client {$fd} closed\n"; });$server->on('request', function (Swoole\Http\Request $request, Swoole\Http\Response $response) { global $server;//調(diào)用外部的server // $server->connections 遍歷所有websocket連接用戶(hù)的fd,給所有用戶(hù)推送 foreach ($server->connections as $fd) { // 需要先判斷是否是正確的websocket連接,否則有可能會(huì)push失敗 if ($server->isEstablished($fd)) { $server->push($fd, $request->get['message']); } }});$server->start();

此服務(wù)監(jiān)聽(tīng)本機(jī)的9501端口,運(yùn)行命令 php server.php 啟動(dòng)服務(wù)。

四、HTML5 WebSocket 客戶(hù)端demo

1.客戶(hù)端代碼

新建一個(gè)testServer.html文件,寫(xiě)入以下內(nèi)容:

<!doctype html><html><head> <title>測(cè)試WebSocket</title></head><body> <script> var ws = new WebSocket("ws://【服務(wù)端IP】:9501"); ws.onopen = function(event){ console.log("connected!"); ws.send("hello server,this is client!"); }; ws.onmessage= function(event){ console.log("server message:"+event.data); } ws.onclose = function(event){ console.log("closed!"); }; </script></body></html>

將【服務(wù)端IP】替換成swoole服務(wù)端ip,保存文件。

五、測(cè)試demo

(1) 訪(fǎng)問(wèn)步驟四的客戶(hù)端demo頁(yè)面,首先與服務(wù)端建立連接,查看瀏覽器console log,可以看到顯示:

connected!

(2) 查看linux控制臺(tái),可以看到顯示:

server: handshake success with fd1

(3) 接著客戶(hù)端向服務(wù)端發(fā)了一條消息,服務(wù)端控制臺(tái)顯示:

receive from fd1:hello server,this is client!

(4) 服務(wù)端收到消息后,向客戶(hù)端回復(fù)了一條消息,客戶(hù)端控制臺(tái)顯示:

server message:this is server

以上就是基于swoole+websocket開(kāi)發(fā)雙向通信應(yīng)用的簡(jiǎn)單演示,在線(xiàn)聊天、網(wǎng)頁(yè)游戲等實(shí)時(shí)通信的應(yīng)用也可基于此方式進(jìn)行開(kāi)發(fā)。php開(kāi)發(fā)效率高,可以更快、更高效地進(jìn)行此類(lèi)應(yīng)用地開(kāi)發(fā),節(jié)約開(kāi)發(fā)成本。

大家如果還有什么疑問(wèn),可以關(guān)注公眾號(hào)“全棧社區(qū)”進(jìn)行提問(wèn)。

關(guān)注微信公眾號(hào)“全棧社區(qū)”,可獲取更多站長(zhǎng)、開(kāi)發(fā)者必備的前端、后端、服務(wù)器技術(shù)干貨。旭貓?jiān)?9元VPS:xintu.xumaoyun.com

掃描二維碼推送至手機(jī)訪(fǎng)問(wèn)。

版權(quán)聲明:本文由信途科技轉(zhuǎn)載于網(wǎng)絡(luò),如有侵權(quán)聯(lián)系站長(zhǎng)刪除。

轉(zhuǎn)載請(qǐng)注明出處http://www.quickersubmitter.com/xintu/15512.html

相關(guān)文章

網(wǎng)絡(luò)營(yíng)銷(xiāo)選擇布馬網(wǎng)絡(luò)歡迎光臨的簡(jiǎn)單介紹

廣州布馬網(wǎng)絡(luò)科技有限公司介紹頁(yè)面,公司位于廣東省廣州市白云區(qū)新市齊富路888號(hào) 騰運(yùn)大廈408,主要經(jīng)營(yíng)網(wǎng)絡(luò)營(yíng)銷(xiāo),廣告策劃,網(wǎng)絡(luò)廣告,黃頁(yè)88網(wǎng)企業(yè)大全廣州黃頁(yè)為你提。布馬網(wǎng)絡(luò)組建了一支跨廣州北京長(zhǎng)沙...

oppo網(wǎng)絡(luò)營(yíng)銷(xiāo)成功案例,網(wǎng)絡(luò)營(yíng)銷(xiāo)成功案例并分析其成功原因

一直被認(rèn)為是在用“上個(gè)世紀(jì)營(yíng)銷(xiāo)套路”的OPPO,讓所有人都開(kāi)始重新審視起來(lái),不過(guò)很多人還是認(rèn)為OPPO的成功,不過(guò)靠的是猛砸廣告和高毛利。另外,OPPO也沒(méi)有忽視網(wǎng)絡(luò),在新浪等大的門(mén)戶(hù)網(wǎng)站消費(fèi)者都能看...

包含永州全網(wǎng)網(wǎng)絡(luò)推廣怎么引流的詞條

紅網(wǎng)時(shí)刻3月15日訊(通訊員 彭蟾)3月15日,永州市首場(chǎng)智能數(shù)字化現(xiàn)場(chǎng)招聘會(huì)在永州市人力資源市場(chǎng)大廳舉行,相比傳統(tǒng)招聘會(huì),數(shù)字化招聘實(shí)現(xiàn)了無(wú)紙化招聘、精準(zhǔn)匹配,只要一張身份證,就能逛遍整場(chǎng)招聘會(huì),現(xiàn)...

收費(fèi)站營(yíng)銷(xiāo)推廣引流增收活動(dòng)(收費(fèi)站營(yíng)銷(xiāo)推廣)

3月3日,在第八屆“北京草莓之星”評(píng)選頒獎(jiǎng)典禮暨第三屆昌平草莓節(jié)啟動(dòng)儀式上,昌平區(qū)郵政分公司與昌平區(qū)農(nóng)業(yè)農(nóng)村局簽訂《郵政助力鄉(xiāng)村振興協(xié)議》。協(xié)議中,昌平區(qū)分公司在昌平區(qū)政府的大力支持下,將進(jìn)一步貫徹落...

膠南網(wǎng)絡(luò)營(yíng)銷(xiāo)電話(huà),百度網(wǎng)絡(luò)營(yíng)銷(xiāo)中心電話(huà)

青島膠南湘彧網(wǎng)絡(luò)傳媒工作室聯(lián)系方式,提供青島膠南湘彧網(wǎng)絡(luò)傳媒工作室固定電話(huà)手機(jī)EMAIL等聯(lián)系方式,以及青島膠南湘彧網(wǎng)絡(luò)傳媒工作室聯(lián)系人信息。提供網(wǎng)絡(luò)推廣新聞推廣微信營(yíng)銷(xiāo)網(wǎng)絡(luò)營(yíng)銷(xiāo)等一系列專(zhuān)業(yè)的推廣相關(guān)...

桐梓網(wǎng)絡(luò)營(yíng)銷(xiāo),桐梓網(wǎng)站關(guān)鍵詞優(yōu)化

今日焦點(diǎn)關(guān)注桐梓信息網(wǎng),桐梓城事早知道!桐梓信息網(wǎng)在桐梓,還有比我們這里曝光量更高的網(wǎng)絡(luò)平臺(tái)嗎?您的信。大專(zhuān)及以上學(xué)歷,電子商務(wù)網(wǎng)絡(luò)營(yíng)銷(xiāo)相關(guān)專(zhuān)業(yè)優(yōu)先2 熟練使用電商平臺(tái)的相關(guān)工具3 熟練使用辦公軟件4...

現(xiàn)在,非常期待與您的又一次邂逅

我們努力讓每一次邂逅總能超越期待

  • 效果付費(fèi)
    效果付費(fèi)

    先出效果再付費(fèi)

  • 極速交付
    極速交付

    響應(yīng)速度快,有效節(jié)省客戶(hù)時(shí)間

  • 1對(duì)1服務(wù)
    1對(duì)1服務(wù)

    專(zhuān)屬客服對(duì)接咨詢(xún)

  • 持續(xù)更新
    持續(xù)更新

    不斷升級(jí)維護(hù),更好服務(wù)用戶(hù)