push接收数据但不在Echo回调函数(laravel)中



我正在使用laravel和pusher进行应用内通知。我所做的是在push中创建一个帐户,并像这样进行配置。

bootstrap.js

import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
window.Pusher.logToConsole = true;
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
forceTLS: true
});

事件/Comment.php

<?php
namespace AppEvents;
use IlluminateBroadcastingChannel;
use IlluminateBroadcastingInteractsWithSockets;
use IlluminateContractsBroadcastingShouldBroadcast;
use IlluminateFoundationEventsDispatchable;
use IlluminateQueueSerializesModels;
class Comment implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $username;
public $message;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($username)
{
//
$this->username = $username;
$this->message  = "{$username} liked your status";
}
/**
* Get the channels the event should broadcast on.
*
* @return IlluminateBroadcastingChannel|array
*/
public function broadcastOn()
{
// return new PrivateChannel('channel-name');
return new Channel('comments-channal');
}
}

script.js

$(function() {

const Http = window.axios;
const Echo = window.Echo;

let channal = Echo.channel('comments-channel');
channal.listen('Comment', function(data) {
alert(data);
console.log(data)
})
})

控制器

Comment::dispatch('fatima');

然后我在push调试控制台中得到了API消息,但是在我的控制台中我得到了这个

Pusher : Event recd : {"event":"pusher_internal:subscription_succeeded","data":{},"channel":"comments-channel"}
Pusher : No callbacks on comments-channel for pusher:subscription_succeeded

供参考,我对BROADCAST_DRIVER=pusher.env进行了双重检查

如果有任何帮助我将非常感谢。

给你的评论广播类你可以使用这个函数格式化你的数据:

public function broadcastWith()
{
return ['username' => $this->username,'message'=>$this->message];
}

最新更新