尝试将Laravel 5.3与推送器一起使用,但它似乎在我的代码中无法正常工作。
我的.env是正确的
where
这是我在broadcast.php中的'推动'配置
PUSHER_APP_ID= myappid
PUSHER_KEY= mykey
PUSHER_SECRET= mysecret
我创建了一个活动,这里是
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_KEY'),
'secret' => env('PUSHER_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => 'eu',
'encrypted' => true,
],
],
我的javascript
<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class ProposalEvent implements ShouldBroadcast
{
use InteractsWithSockets, SerializesModels;
public $data;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($data)
{
$this->data = $data;
}
/**
* Get the channels the event should broadcast on.
*
* @return Channel|array
*/
public function broadcastOn()
{
return ['test-channel'];
// return new PrivateChannel('test-channel');
// return new PresenceChannel('test-channel');
}
}
最后在我看来
Pusher.logToConsole = true;
var pusher = new Pusher("mykey", {
cluster: 'eu',
encrypted: true
});
var channel = pusher.subscribe('test-channel');
channel.bind('App\\Events\\ProposalEvent', function(data) {
alert(data);
});
不幸的是,这对我不起作用,但是当我使用pusher-&gt;这样的触发器时,没有事件,它工作正常,我在推送调试控制台中看到消息
event(new App\Events\ProposalEvent('some data'));
我在Laravel文档和其他资源中搜索过解决方案。 stackoverflow中存在同样问题的问题,但没有回复。如果有人可以帮助我,我将不胜感激,因为我几天都找不到解决方案
答案 0 :(得分:1)
我遇到了同样的情况,发现我没有使用队列!
在文档中说
在广播事件之前,您还需要配置并运行队列侦听器。所有事件广播都是通过排队的作业完成的,这样您的应用程序的响应时间就不会受到严重影响。
之前我删除了config / queue.php文件,因为我以为我没有使用它。也许你和我做同样的事情或者队列有问题。
答案 1 :(得分:0)
尝试直接通过config / broadcasting.php
传递推送凭据它对我有用。
'default' => 'pusher',
'connections' => [
'pusher' => [
'driver' => 'pusher',
'key' => '***',
'secret' => '**',
'app_id' => '**',
'options' => [
],
],
],
enter code here
答案 2 :(得分:0)
在视图中触发事件是错误的,首先加载页面是先执行php,然后加载js,这意味着您在js列表显示之前显示php触发了事件,这可能是第一种情况 第二种情况是您没有下载https://curl.haxx.se/docs/caextract.html 如果您确实访问过php.ini,并且在[curl]中会发现类似curl-info的内容,则会对其进行注释 并选择culr文件的路径