广播 laravel 事件和多个频道
Posted
技术标签:
【中文标题】广播 laravel 事件和多个频道【英文标题】:broadcasting laravel event and multiple channels 【发布时间】:2019-05-16 19:08:48 【问题描述】:我是 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) ..
如您所见,我想订阅两个频道,但每个频道的返回值不同。而且我没有运气找到任何解释它是如何实现的。我是否分别为每个频道创建了新事件,或者存在使用广播的一些技巧?
非常感谢
【问题讨论】:
【参考方案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)
];
【讨论】:
以上是关于广播 laravel 事件和多个频道的主要内容,如果未能解决你的问题,请参考以下文章