Pusher没有收到任何事件

时间:2016-11-09 17:08:39

标签: javascript php laravel pusher

我正在使用带有推杆的laravel向推送器发送一条事件消息。代码在我的控制器中,这是一个后置控制器,在提交输入表单时触发。下面是我的代码。我究竟做错了什么?没有收到任何活动。 这是一个基于ajax呼叫路由的控制器。

$pusher = new Pusher( env('PUSHER_KEY'), env('PUSHER_SECRET'), env('PUSHER_APP_ID'), array( 'encrypted' => true ) );
$pusher->trigger( 'test_channel', 'my_event', 'hello world' );

1 个答案:

答案 0 :(得分:1)

我还假设您已正确设置了Pusher帐户,并且您的环境变量是正确的。

如果是这样,您可能需要确保使用正确的群集(默认情况适用于美国,但在美国东海岸以外,必须明确定义群集)。

更新

控制器代码:

<?php

namespace App\Http\Controllers;

use Vinkla\Pusher\Facades\Pusher;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

class TestPusherController extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;


    public function test(){
        $arr = array('test' => 'hello world 2') ;
        $pusher = new Pusher( env('PUSHER_KEY'), env('PUSHER_SECRET'), env('PUSHER_APP_ID'), array( 'encrypted' => true, 'cluster' => 'ap1' ) );
        $pusher::trigger( 'test_channel', 'my_event', $arr);

        return $arr;
    }

    public function shortenedTest(){
        $message = 'Hello world';
        Pusher::trigger('my-channel', 'my-event', ['message' => $message]);
    }

}

在网络路线中:

Route::get('testPusherController', 'TestPusherController@test');
Route::get('shortenedTestPusherController', 'TestPusherController@shortenedTest');

我按照https://github.com/vinkla/laravel-pusher中的设置步骤在Laravel 5.3上使用内置的PHP服务器并连接到EU服务器(我没有任何Pusher),全新安装vinkla / pusher此时使用ap1的应用程序)。

您会注意到控制器中的编码发生了少量更改,以获得正确的格式。您必须“使用”控制器上方的Pusher外观。

为了完整起见,我添加了一种更简洁的方法,您可以在Config / pusher.php文件中设置Pusher凭据,而无需为每次使用设置连接。这可以在控制器上的shortenedTest()方法中看到。

<?php

return [

    'connections' => [
        'main' => [
            'auth_key' => env('PUSHER_KEY'),
            'secret' => env('PUSHER_SECRET'),
            'app_id' => env('PUSHER_APP_ID'),
            'options' => [
                'cluster' => env('PUSHER_CLUSTER')
            ],
            'host' => null,
            'port' => null,
            'timeout' => null,
        ],

        'alternative' => [
            'auth_key' => 'your-auth-key',
            'secret' => 'your-secret',
            'app_id' => 'your-app-id',
            'options' => [],
            'host' => null,
            'port' => null,
            'timeout' => null,
        ],

    ],

];