簡體   English   中英

使用Laravel Echo,laravel-echo-server和socket.io進行廣播無法正常工作

[英]Broadcasting with Laravel Echo, laravel-echo-server and socket.io is not working

我已經使用自己的實現成功地使用Laravel設置了websockets,但是經過許多小時的嘗試並閱讀了我能找到的所有文檔后,我確實需要進一步的幫助。

"laravel-echo": "^1.5.2",
"socket.io-client": "^2.2.0",

這是我的.env文件的詳細信息

BROADCAST_DRIVER=redis
CACHE_DRIVER=file
QUEUE_CONNECTION=redis
SESSION_DRIVER=file
SESSION_LIFETIME=120

laravel回波-server.json

 "database": "redis",
    "databaseConfig": {
        "redis": {},
        "sqlite": {
            "databasePath": "/database/laravel-echo-server.sqlite"
        }
    },
    "devMode": true,

ExampleEvent文件

public function broadcastOn()
    {
        return new Channel('test-event');
    }

    public function broadcastWith(){
        return [
            'data' => 'key'
        ];
    }

我的Bootstrap.js

window.Echo.channel('test-event')
    .listen('ExampleEvent', (e) => {
        console.log(e);
    });

實施時

Laravel回波服務器:

[10:03:50 PM]-F07Nv9alc-Bsh3LEAAAB加入頻道:測試事件[10:04:16 PM]-F07Nv9alc-Bsh3LEAAAB左側頻道:測試事件(運輸關閉)頻道:測試事件事件:App \\ Events \\ ExampleEvent

Redis的:

1548349380.228566 [0 127.0.0.1:53929]“ EVAL”“-將第一個作業從隊列中彈出... \\ n本地作業= redis.call('lpop',KEYS [1])\\ n本地保留= false \\ n \\ nif(job〜= false)然后\\ n-增加嘗試次數並將作業放在保留隊列中... \\ n reserved = cjson.decode(job)\\ n reserved ['attempts'] = reserved ['attempts '] + 1 \\ n保留= cjson.encode(保留)\\ n redis.call('zadd',KEYS [2],ARGV [1],保留)\\ nend \\ n \\ n返回{job,保留}“” 2 “”隊列:默認“”隊列:默認:保留“” 1548349470“ 1548349380.228773 [0 lua]” lpop“”隊列:默認“

該聲明正在不斷重復。

而且瀏覽器中沒有輸出

您需要在laravel-echo-config.json文件中設置redis配置,以便它知道從哪里"ask for messages" ,例如:

"databaseConfig": {
    "redis": {
        "host": "http://127.0.0.1"
        "port": "6379"
    },
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM