簡體   English   中英

與redis和socket io的laravel回聲

[英]laravel echo with redis and socket io

我有一個事件SomeEvent.php

像這樣:

<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class SomeEvent  implements ShouldBroadcast
{


    use InteractsWithSockets, SerializesModels;

   public $data;
    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($array)
    {
        $this->data = $array;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return Channel|array
     */
    public function broadcastOn()
    {
        return new PrivateChannel('channel-name');
    }
}

我已經在我的bootstrap.js中包含以下內容並使用gulp進行編譯

import Echo from "laravel-echo"

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: 'http://site.dev:6001'

});

window.Echo.private('channel-name')
    .listen('SomeEvent', (e) => {
        console.log(e);
});

然后我安裝了tlaverdure / laravel-echo-server,這是我的laravel-echo-server.json

{
    "appKey": "[generated]",
    "authHost": "http://site.dev",
    "authEndpoint": "/broadcasting/auth",
    "database": "redis",
    "databaseConfig": {
        "redis": {},
        "sqlite": {
            "databasePath": "/database/laravel-echo-server.sqlite"
        }
    },
    "devMode": false,
    "host": "sitei.dev",
    "port": "6001",
    "referrers": [],
    "socketio": {},
    "sslCertPath": "",
    "sslKeyPath": ""
}

現在,當我用laravel-echo-server啟動laravel echo服務器啟動它啟動時非常好,但是當我啟動上述事件時

event(new SomeEvent(json_encode(['name' => 'some-name'])));

我可以看到發布到redis的事件,但是我的客戶端控制台沒有任何東西:我也在我的master.blade.php中包含socket io

以上也會發生通知

任何幫助將受到高度贊賞。 多謝你們

您是否在BroadcastServiceProvider中為您的頻道定義了身份驗證規則?

如果你在laravel-echo-server.json中放入devMode,你看到有關連接和離開頻道的任何信息嗎?

我試圖建立我的websocket連接時遇到了很多麻煩,但最后我發現它並且我的代碼看起來非常像你的。

祝好運!

暫無
暫無

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

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