聊聊PHP+webSocket業(yè)務(wù)處理方案,學(xué)到就是你的澎蛛。

首先Socket這個(gè)方案都很多種抚垄,webSocket也是其中的一種通信方案。在以前的PHP總谋逻,做這一項(xiàng)的事情是非常痛苦呆馁。雖然現(xiàn)在有了好多選擇,比如Swoole還有Workerman等毁兆,可是一堆回調(diào)你能忍浙滤?由于Socket很多PHP框架都不太成熟,可是websocket這個(gè)協(xié)議到時(shí)幫了php不少問題气堕。

我現(xiàn)在屬于的團(tuán)隊(duì)前后端各站一半纺腊,在技術(shù)選型上也糾結(jié)了一點(diǎn)時(shí)間。我到底是選擇Socket.io的php版本還是直接Socket.io的node.js版本茎芭。

指導(dǎo)Omi的作者說出了揖膜,騰訊文檔是用 Socket.io這話,我突然回想起梅桩,網(wǎng)易云音樂壹粟、金十?dāng)?shù)據(jù)、imgur等運(yùn)營(yíng)的技術(shù)都是Socket.io宿百,至于為什么這樣趁仙,PHP做什么事情最擅長(zhǎng)?答案無疑:WEB開發(fā)垦页,創(chuàng)業(yè)公司的急救包雀费。
讓很多企業(yè)前期可以實(shí)現(xiàn)大吉大利,年終吃雞的美夢(mèng)外臂。那么web的數(shù)據(jù)傳輸過程中坐儿,json是標(biāo)配,那么是處理json最拿手宋光?無疑是JavaScript貌矿。所以node.js的Socket.io無疑是最好的選擇。

圖中網(wǎng)易云使用的0.9.16的版本罪佳,已經(jīng)能運(yùn)行這么多年了逛漫,可見性能強(qiáng)悍,而且有成熟的分布式組件方案赘艳,可以橫向擴(kuò)展酌毡,性能不是瓶頸問題克握。

image.png

我先聊聊,項(xiàng)目業(yè)務(wù)之間是如何處理枷踏。
這是最簡(jiǎn)單和最理想的一種情況菩暗。

image.png

但是我們后端代碼是php,api數(shù)據(jù)接口層也是php旭蠕。用的是laravel停团。laravel和socket.io是兩個(gè)程序,而且現(xiàn)在的php的websocket客戶端只要Swoole享用掏熬。

那么我們要怎么處理呢佑稠??這里我們需要用到是laravel的異步消息隊(duì)列和爬蟲原理旗芬。

這時(shí)候我們PHP這邊的處理方式是以下方式舌胶。

image.png

我們會(huì)在php制作一個(gè)頁(yè)面來做渲染,在異步隊(duì)列用把消息通過爬蟲的原理把ws激活疮丛。頁(yè)面內(nèi)容如下幔嫂。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

</body>
</html>
<script src="{{asset('/static/lib/socket/socket.io.js')}}"></script>
<script>
    var socket = io('{{env('WEB_SOCKET_URL')}}');

    socket.emit('{{$event}}',{!! $data !!});

</script>

為什么做異步,而不是同步呢这刷?因?yàn)楫惒脚艿檬橇硪粭l線程婉烟,用戶可以做其他事情,別人收到消息暇屋,回你做說吧似袁,你平時(shí)和別人聊天的時(shí)候,也不會(huì)一直靜靜看著聊天框吧咐刨?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末昙衅,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子定鸟,更是在濱河造成了極大的恐慌而涉,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件联予,死亡現(xiàn)場(chǎng)離奇詭異啼县,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)沸久,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門季眷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人卷胯,你說我怎么就攤上這事子刮。” “怎么了窑睁?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵挺峡,是天一觀的道長(zhǎng)葵孤。 經(jīng)常有香客問我,道長(zhǎng)橱赠,這世上最難降的妖魔是什么尤仍? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮狭姨,結(jié)果婚禮上吓著,老公的妹妹穿的比我還像新娘。我一直安慰自己送挑,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布暖眼。 她就那樣靜靜地躺著惕耕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诫肠。 梳的紋絲不亂的頭發(fā)上司澎,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天,我揣著相機(jī)與錄音栋豫,去河邊找鬼挤安。 笑死,一個(gè)胖子當(dāng)著我的面吹牛丧鸯,可吹牛的內(nèi)容都是我干的蛤铜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼丛肢,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼围肥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蜂怎,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤穆刻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后杠步,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氢伟,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年幽歼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了朵锣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡试躏,死狀恐怖猪勇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情颠蕴,我是刑警寧澤泣刹,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布助析,位于F島的核電站,受9級(jí)特大地震影響椅您,放射性物質(zhì)發(fā)生泄漏外冀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一掀泳、第九天 我趴在偏房一處隱蔽的房頂上張望雪隧。 院中可真熱鬧,春花似錦员舵、人聲如沸脑沿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)庄拇。三九已至,卻和暖如春韭邓,著一層夾襖步出監(jiān)牢的瞬間措近,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工女淑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瞭郑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓鸭你,卻偏偏與公主長(zhǎng)得像屈张,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子袱巨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容

  • 并發(fā)IO問題一直是服務(wù)器端編程中的技術(shù)難題袜茧,從最早的同步阻塞直接Fork進(jìn)程,到Worker進(jìn)程池/線程池瓣窄,到現(xiàn)在...
    零一間閱讀 1,719評(píng)論 1 34
  • 出處:韓天峰 網(wǎng)址:rango.swoole.com/archives/508 并發(fā)IO問題一直是后端編程中的技術(shù)...
    meng_philip123閱讀 2,405評(píng)論 1 38
  • PHP常用socket創(chuàng)建TCP連接笛厦,使用CURL創(chuàng)建HTTP連接,為了簡(jiǎn)化操作俺夕,Swoole提供了Client類...
    JunChow520閱讀 3,870評(píng)論 0 3
  • 在不用緩存裳凸、集群之類東東只情況下,PHP框架哪家強(qiáng)劝贸?我指的是高并發(fā)高負(fù)載姨谷,并且適合做大型項(xiàng)目的。 高負(fù)載不是一個(gè)語...
    IM魂影閱讀 1,951評(píng)論 3 2
  • swoole 安裝用的是centOSphp安裝目錄:/usr/local/php php.ini配置文件路徑:/u...
    a十二_4765閱讀 11,854評(píng)論 3 9