Mam*_*men 6 php laravel pusher
我有推送器应用程序,然后我尝试通过 Laravel 事件向推送器发送消息,这是我的事件:
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class NewOrder
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $email;
public $message;
public function __construct($email)
{
$this->email = $email;
$this->message = "New order from {$email}, please check.";
//
}
public function broadcastOn()
{
return ['new-order'];
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试用路由测试来测试它,
Route::get('test', function () {
event(new App\Events\NewOrder('John'));
return "Event has been sent!";
});
Run Code Online (Sandbox Code Playgroud)
我的推送器配置已像推送器的帐户配置一样进行配置,但访问后/test,推送器调试控制台不显示任何内容。
'default' => env('BROADCAST_DRIVER', 'pusher'),
'connections' => [
'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'),
// 'cluster' => 'ap1',
'encrypted' => true,
],
],
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
'log' => [
'driver' => 'log',
],
'null' => [
'driver' => 'null',
],
],
];
Run Code Online (Sandbox Code Playgroud)
我不知道从 Laravel 应用程序中看到推送者的日志,有人可以帮助我吗?我正在使用 Laravel 5.5
我认为问题在于您的事件类声明,您应该实施,ShouldBroadcastNow因为它会立即触发事件并且不需要队列实施。默认情况下,您需要设置一个队列,然后运行该队列来触发事件。
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
class NewOrder implements ShouldBroadcastNow
{
....do your stuff....
}
Run Code Online (Sandbox Code Playgroud)
并查看这个惊人的播放列表,这肯定会解决您的所有问题
我也遇到这个问题了大约2个小时。
你忘了实现广播,
您可以使用:
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
class NewOrder implements ShouldBroadcastNow
Run Code Online (Sandbox Code Playgroud)
或者
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class NewOrder implements ShouldBroadcast
Run Code Online (Sandbox Code Playgroud)
后者需要一个队列驱动程序
快乐编码:)
| 归档时间: |
|
| 查看次数: |
4419 次 |
| 最近记录: |