在 laradock 環(huán)境中使用 laravel-swoole 的 websocket

之前寫了一篇 在 laradock 環(huán)境中使用 laravel-swoole 加速你的 laravel 應(yīng)用 的博客,算是敲開了 laravel-swoole 的大門装处,今天就繼續(xù)研究下期中的 websocket 功能居砖。

安裝 laravel-swoole

這里就不寫了眷唉,參考上篇晃痴。

配置 socket

編輯 laravel env 文件缝彬,寫入如下一行:

SWOOLE_HTTP_WEBSOCKET=true

然后執(zhí)行 php artisan swoole:http infos 查看狀態(tài)

+-----------------+-----------------------------------------------------+
| Name            | Value                                               |
+-----------------+-----------------------------------------------------+
| PHP Version     | 7.2.21-1+ubuntu16.04.1+deb.sury.org+1               |
| Swoole Version  | 4.4.4                                               |
| Laravel Version | 5.8.33                                              |
| Listen IP       | workspace                                           |
| Listen Port     | 1215                                                |
| Server Status   | Online                                              |
| Reactor Num     | 2                                                   |
| Worker Num      | 2                                                   |
| Task Worker Num | 2                                                   |
| Websocket Mode  | On                                                  |
| Master PID      | 326                                                 |
| Manager PID     | 327                                                 |
| Log Path        | /var/www/laravel-learn/storage/logs/swoole_http.log |
+-----------------+-----------------------------------------------------+

可以看到 Websocket Mode 一項已經(jīng)打開了妓局。

編輯 socket 路由

routes/websocket.php 中:

Websocket::on('connect', function ($websocket, Request $request) {
    // called while socket on connect
    $websocket->emit('message', 'welcome');
});

Websocket::on('disconnect', function ($websocket) {
    // called while socket on disconnect
    $websocket->emit('message', 'server is gone, bye~');
});

Websocket::on('example', function ($websocket, $data) {
    $websocket->emit('message', $data);
});

此文件修改后需要重啟 swoole:http总放。

前端連接 socket

因為 laravel-swoole 使用的是 Socket.io,所以這里也采用這個跟磨。

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.js"></script>
<script type="text/javascript">
    var socket = io('http://study.test:8080/', {transports: ['websocket'], reconnection: true});

    socket.on('connect', function () {
        socket.emit('example', 'hi');

        socket.on('disconnect', function () {
            console.log('disconnect');
        });

        socket.on('message', function (msg) {
            console.log(msg)
        });
    });
</script>

配置 nginx

如果你用的 swoole 版本為 4.4.4间聊,那么還需要對上篇文章中的 nginx 配置做個小修改,即添加一行:

 proxy_http_version 1.1;

完整配置就不貼了抵拘,把這一行加在 proxy_pass http://swoole-http$suffix; 這一行前后都行哎榴。

如果沒有這一行的話,而且怎么也沒反應(yīng)的話僵蛛,記得去 log 中找具體報錯尚蝌。

emmm,文檔沒寫充尉,在 issue 里扒出來的……

演示
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末飘言,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子驼侠,更是在濱河造成了極大的恐慌姿鸿,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倒源,死亡現(xiàn)場離奇詭異苛预,居然都是意外死亡,警方通過查閱死者的電腦和手機笋熬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門热某,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事昔馋〕锿拢” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵秘遏,是天一觀的道長丘薛。 經(jīng)常有香客問我,道長垄提,這世上最難降的妖魔是什么榔袋? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮铡俐,結(jié)果婚禮上凰兑,老公的妹妹穿的比我還像新娘。我一直安慰自己审丘,他們只是感情好吏够,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著滩报,像睡著了一般锅知。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脓钾,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天售睹,我揣著相機與錄音,去河邊找鬼可训。 笑死昌妹,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的握截。 我是一名探鬼主播飞崖,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼谨胞!你這毒婦竟也來了固歪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤胯努,失蹤者是張志新(化名)和其女友劉穎牢裳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叶沛,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蒲讯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了恬汁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伶椿。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖氓侧,靈堂內(nèi)的尸體忽然破棺而出脊另,到底是詐尸還是另有隱情,我是刑警寧澤约巷,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布偎痛,位于F島的核電站,受9級特大地震影響独郎,放射性物質(zhì)發(fā)生泄漏踩麦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一氓癌、第九天 我趴在偏房一處隱蔽的房頂上張望谓谦。 院中可真熱鬧,春花似錦贪婉、人聲如沸反粥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躁垛。三九已至蔑鹦,卻和暖如春船万,著一層夾襖步出監(jiān)牢的瞬間假消,已是汗流浹背怠堪。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工乌昔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留腰池,地道東北人尾组。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像巩螃,于是被迫代替她去往敵國和親演怎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

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