广播laravel事件和多个频道

时间:2018-12-15 22:48:19

标签: laravel redis socket.io

我是laravel的新手,所以我搜寻了很多关于如何在laravel框架中使用redis,socket.io创建websocket的方法。 最后,我的websocket可以按预期工作。但是我仍然有关于websockets的未解决问题。 你能帮我找到答案吗?

class TestEvent implements ShouldBroadcast此类期望使用broadcastOn方法,该方法将带有数据的一个或多个频道广播到侦听器。在我的情况下,侦听器是server.js

redis.subscribe('test-channel', 'test-channel-new');
redis.on('message', function (channel, message) {..
如您所见,

我想订阅两个频道,但是每个频道的返回值都不同。而且我没有运气找到任何解释如何实现的。我是否分别为每个频道创建了新事件,或者是否存在使用broadcastWith的技巧?

非常感谢

1 个答案:

答案 0 :(得分:1)

这很容易!只是在broadcastOn方法中返回Channels的数组 我只是这样做: 示例:

public function broadcastOn()
{
    return [
        new PrivateChannel('App.Message.' . $this->message->to_user_id),
        new PrivateChannel('App.Message.'. $this->message->to_user_id .'.From.'. $this->message->from_user_id)
    ];
}