【发布时间】:2016-02-04 10:56:18
【问题描述】:
我正在使用 Laravel 5.2 和 php 7。我正在本地 Mac OSX 环境中进行测试。我在 ping 其他服务或使用 php 发出请求时没有问题。我通过使用我的 api 详细信息编辑 broadcasting.php 和 .env 来配置我的应用程序。
广播.php
'default' => env('BROADCAST_DRIVER', 'pusher'),
'connections' => [
'pusher' => [
'driver' => 'pusher',
'key' => env('mykey'),
'secret' => env('mysecret'),
'app_id' => env('myappid'),
],
...
在 .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
但在查看调试控制台时,推送器中没有显示任何内容。因此,由于某种原因,该事件似乎从未被发送到推送者。我还检查了我的时区设置,以确保这不是问题。广播事件时,laravel 日志文件中 my 没有错误。
我该如何解决这个问题?有没有好的调试方法,看看是否真的有向推送者发出请求?
【问题讨论】: