【问题标题】:Why broadcasting channel public not working? Laravel为什么公共广播频道不起作用?拉拉维尔
【发布时间】:2018-02-04 19:24:59
【问题描述】:

我使用 laravel 5.3

我像这样制作 routes/channels.php :

<?php
Broadcast::channel('messages', function() {
    return true;
});

如果我输入数据车并点击提交,它将运行:

this.$http.post(window.BaseUrl + '/guest/add-notification', {cart_data: JSON.stringify(data)});

它会调用控制器上的函数

这样的功能:

public function addNotification(Request $request){
    $input = $request->only('cart_data');
    $data = json_decode($input['cart_data'], true);
    event(new CartNotificationEvent($data));
}

然后它会调用事件

这样的事件:

<?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 CartNotificationEvent
{
    use InteractsWithSockets, SerializesModels;
    public $data;
    public function __construct($data)
    {
        $this->data = $data;
    }
    public function broadcastWith()
    {
        return [
            'message' => $this->data,
        ];
    }
    public function broadcastAs()
    {
        return 'newMessage';
    }
    public function broadcastOn()
    {
        return new Channel('messages');
    }
}

在客户端,我喜欢这样:

Echo.channel('messages')
.listen('.newMessage', (message) => {
    console.log('test')
    console.log(message);
});

当所有代码执行完毕后,我在控制台上查看,console.log 不显示

为什么它不起作用?

如果我看到我编写的整个代码,似乎该过程是正确的

【问题讨论】:

    标签: laravel notifications laravel-5.3 broadcast laravel-echo


    【解决方案1】:

    class CartNotificationEvent implements ShouldBroadcast 不见了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 2020-03-02
      • 2021-11-08
      相关资源
      最近更新 更多