Pusher在路线上没有在Laravel发送事件

时间:2015-01-12 11:43:02

标签: laravel websocket push-notification real-time pusher

我正在使用Pusher创建一个测试应用,以便在Laravel 4上进行实时通知。 当我测试上述API时,我很难让它工作。

我在routes.php

上有这个
Route::get('pusher-test', function(){
    return View::make('pages.test');
});
Route::any('test', function(){
        $pusher = new Pusher('key','sect','app_key'); //my keys are correct.
        $pusher->trigger('notificationChannel', 'userRegistration', []);
});

然后我的pusherTest.js文件:

(function(){
    var pusher = new Pusher('key');
    var channel = pusher.subscribe('notificationChannel');
        channel.bind('userRegistration', function(data){
            $('.test').append('HEY!');
        }); 
})();

我的观点页面:

<html>
    <head>
        <meta charset="utf-8">
        {{ HTML::style('_/css/bootstrap.css') }}
        {{ HTML::style('_/css/mystyle.css') }}
    </head>
    <body>
        <h2>HI!</h2>
        <div class="test"></div>
        {{ HTML::script('_/js/bootstrap.js') }}
        {{ HTML::script('_/js/jquery.js') }}
        {{ HTML::script('_/js/pusher/pusher.min.js')}}
        {{ HTML::script('_/js/pusherTest.js')}}
    </body>
</html>

当我尝试在Pusher.com上观察我的应用的Debug Console时, 这就是我所看到的: enter image description here

但是当我点击test路线时,它没有在我的Pusher应用上发送事件,也没有将API消息发送给我的客户端。但是,如果我将在调试控制台上使用Create new Event测试器,那么它确实会发送API消息,而我的客户端会接收并更新它。 enter image description here

您认为为什么在我的路线上它不能将该事件发送到我的推送应用程序?我无法弄明白,因为它没有异常错误。请指教。

4 个答案:

答案 0 :(得分:4)

for me it was because I used the eu server and laravel is configured automatically on us server

答案 1 :(得分:4)

要扩展@ adutu的答案,您需要设置

'cluster' => 'eu'

在&#39;选项中&#39;推送驱动程序配置的一部分,在broadcast.php。

答案 2 :(得分:2)

您可以通过三个点调试与Pusher的集成:

  1. 您与Pusher的HTTP(REST)API的互动
  2. 确保Pusher使用Pusher调试控制台接收事件
  3. 通过检查pusher-js logging
  4. 确保您的客户端集成正常

    在您的情况下,您已完成2.您可以看到您触发的事件未到达调试控制台。所以,你需要做1。

    Pusher PHP Server库提供了有关如何启用调试的详细信息: https://github.com/pusher/pusher-php-server#debugging

    如何从库中获取日志信息: https://github.com/pusher/pusher-php-server#logging

    一旦你有pusher-php-server库记录信息,请随时发布,以便我们可以看到问题可能是什么,例如你得到非2xx响应代码吗?

答案 3 :(得分:0)

这个问题是由于您无法为推送器广播设置主机。

您在使用EU群集时只会遇到此问题,在这种情况下,您应将主机更改为:

api-eu.pusher.com

同样,您可以制作自定义广播驱动程序。与默认值相同但设置主机参数。

  

我将建议对照明广播管理员进行编辑,以使此更改更容易。