我正在使用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
时,
这就是我所看到的:
但是当我点击test
路线时,它没有在我的Pusher应用上发送事件,也没有将API消息发送给我的客户端。但是,如果我将在调试控制台上使用Create new Event
测试器,那么它确实会发送API消息,而我的客户端会接收并更新它。
您认为为什么在我的路线上它不能将该事件发送到我的推送应用程序?我无法弄明白,因为它没有异常错误。请指教。
答案 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的集成:
在您的情况下,您已完成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
同样,您可以制作自定义广播驱动程序。与默认值相同但设置主机参数。
我将建议对照明广播管理员进行编辑,以使此更改更容易。