可以在同一页面上使用Laravel Echo进行三个或更多事件的广播吗?

时间:2018-09-25 07:34:31

标签: redis socket.io broadcast laravel-5.6 laravel-echo

ubuntu + laravel 5.6 + redis + laravel echo + laravel-echo-server

因为我有一个带有数据库ID的动态页面,就像

id=15,25,.....
http:://localhost/broadcast/15
http:://localhost/broadcasr/25
..............................

我想在同一页面上有两个动态redis事件。

就像

redis message1=_____
redis message2=_____
...............

我可以只向打开同一网站的人广播吗?

http:://localhost/broadcast/15
   redis message1=_____(which in DB is id=15,mes1,mes2 column)
   redis message2=_____
   ...................
http:://localhost/broadcasr/25
   redis message1=_____(which in DB is id=25,mes1,mes2 column)
   redis message2=_____
   ................

或者也可以在http :: // localhost / .....向所有人进行广播。 无法区分ID 15,ID 25页面?

我的/app/Events/Message.php

public $mes1;
public $mes2;
public function __construct($mes1,$mes2)
{
    $this->mes1 = $mes1;
    $this->mes2 = $mes2;
}
public function broadcastOn()
{
    // return new PrivateChannel('channel-name');
    return new Channel('everyone');
}

我的channels.php(不知道如何默认编写)

Broadcast::channel('App.User.{id}', function ($user, $id) {
    return (int) $user->id === (int) $id;
});

刀片sedmessage.blade.php上的“我的发送消息”按钮javascript

    Echo.channel('everyone')
        .listen('Sendmessage', function (e) {
             if(e.mes1){
                $(".mes1").val(e.mes1);
             }
             if(e.mes2){
                $(".mes2").val(e.mes2);
             }
        });

我的资产/js/bootstrap.js

import Echo from 'laravel-echo'
window.io = require('socket.io-client');

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: window.location.hostname + ':6001'
});

0 个答案:

没有答案