我是使用laravel pusher的新手,我已经阅读了文档并观看了一些有关如何使用它的教程,但是以某种方式我无法使它工作。我在php7.1和nginx上使用laravel 5.6。
我已经在.env文件中添加了所有按键,下面是一些代码
.env
localStorage
web.php
BROADCAST_DRIVER=pusher
broadcasting.php
use App\Events\TestEvent;
Route::get('/test', function() {
event( new TestEvent() );
});
TestEvent.php
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'encrypted' => true,
],
],
当我尝试访问我的应用程序上的路由 / test 时,我希望Pusher调试控制台会记录任何东西,但没有记录,甚至Pusher错误日志。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
我没有使用Pusher的经验,所以如果我错了,请纠正我。但是根据documentation,您应该触发Events
来实现ShouldBroadcast
接口,如下所示:
event(new TestEvent());
想解释一下为什么您的活动使用了这些特征?我看不到Dispatchable
被引用的任何地方。 InteractsWithSockets
仅作为use
陈述而不是特征。据我所知,SerializesModels
仅在尝试将整个模型作为事件发送数据时才需要。
答案 1 :(得分:0)
在broadcast.php中将'encrypted'=> true设置为'encrypted'=> false,
答案 2 :(得分:0)
从代码中还不清楚,但是您可以查看routes/channels.php
文件。
以上文件应具有以下代码
Broadcast::channel('TestChannel', function () {
# true can be replaced with condition in non-testing environment
return true;
});
除此之外,您还可以尝试替换
ShouldBroadcast
与
ShouldBroadcastNow
获得
class TestEvent implements ShouldBroadcastNow
还添加,
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
下
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
ShouldBroadcastNow
跳过队列并尽快广播事件消息。