Php 推进器未接收到来自Laravel 5.2广播的事件
我使用的是Laravel5.2和PHP7。我正在本地MacOSX环境中测试这一点。我在ping其他服务或使用php发出请求方面没有问题。我通过使用api详细信息编辑broadcasting.php和.env来配置我的应用程序 broadcasting.phpPhp 推进器未接收到来自Laravel 5.2广播的事件,php,laravel-5,pusher,Php,Laravel 5,Pusher,我使用的是Laravel5.2和PHP7。我正在本地MacOSX环境中测试这一点。我在ping其他服务或使用php发出请求方面没有问题。我通过使用api详细信息编辑broadcasting.php和.env来配置我的应用程序 broadcasting.php 'default' => env('BROADCAST_DRIVER', 'pusher'), 'connections' => [ 'pusher' => [ 'driver' => '
'default' => env('BROADCAST_DRIVER', 'pusher'),
'connections' => [
'pusher' => [
'driver' => 'pusher',
'key' => env('mykey'),
'secret' => env('mysecret'),
'app_id' => env('myappid'),
],
...
和in.env
...
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=redis
BROADCAST_DRIVER=pusher
PUSHER_KEY=mykey
PUSHER_SECRET=mysecret
PUSHER_APP_ID=myappid
...
我创建了一个这样的TestEvent
<?php
namespace App\Events;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class TestEvent extends Event implements ShouldBroadcast
{
use SerializesModels;
public $data;
public function __construct()
{
$this->data = array(
'power'=> '10'
);
}
public function broadcastOn()
{
return ['test_channel'];
}
}
Event::fire(new TestEvent());
事件显示并在redis中处理
[2016-02-04 10:06:18] Processed: Illuminate\Broadcasting\BroadcastEvent
[2016-02-04 10:08:44] Processed: Illuminate\Broadcasting\BroadcastEvent
[2016-02-04 10:11:14] Processed: Illuminate\Broadcasting\BroadcastEvent
[2016-02-04 10:11:59] Processed: Illuminate\Broadcasting\BroadcastEvent
[2016-02-04 10:14:22] Processed: Illuminate\Broadcasting\BroadcastEvent
[2016-02-04 11:17:04] Processed: Illuminate\Broadcasting\BroadcastEvent
[2016-02-04 11:38:14] Processed: Illuminate\Broadcasting\BroadcastEvent
但是在查看调试控制台时,pusher中没有显示任何内容。因此,似乎出于某种原因,事件从未被发送给pusher。我还检查了我的时区设置,以确保这不是一个问题。广播事件时,laravel日志文件中的my中没有错误
我如何解决这个问题?有没有一种好方法可以调试并查看是否确实有向pusher发出的请求?这可能无法解决问题,可能您更改了问题的详细信息,但如果您的
.env
如下所示:
PUSHER_KEY=mykey
PUSHER_SECRET=mysecret
PUSHER_APP_ID=myappid
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_KEY'),
'secret' => env('PUSHER_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
],
您的推送者凭证的代码不应该如下所示:
PUSHER_KEY=mykey
PUSHER_SECRET=mysecret
PUSHER_APP_ID=myappid
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_KEY'),
'secret' => env('PUSHER_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
],
它引用的是代码中的值,而不是键 我现在明白了。这就解决了问题。很可能会将此标记为解决方案,但会等待数小时,以允许其他人回答或提供输入。谢谢不客气。很高兴它现在对你有用。如果能看到一些关于调试这些问题的解决方案,那就太好了,因为我还没有正确地试验过这些特性。我想您可能已经检查过了,但是您的日志文件是否有关于无效凭据的问题?您可以在
/storage/logs/laravel.log
或包含今天日期的日志中找到它。如果发现问题出现在日志文件中,您可能需要更新我的答案或添加自己的答案。谢谢。不,我的日志文件中没有任何内容,这会使问题更容易解决。在我问题的最后,我已经说过了。我的错是我错过了,我想你可能已经错过了。希望有人能发布一些关于如何调试这些问题的细节。@haakym,看来你能帮我。看看这个: