我正在使用带有推杆的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' );
答案 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,
],
],
];