我正在使用Pusher设置实时通知。我已经在cloud9 IDE的测试环境中使它正常工作。最终,当在LIVE FTP上上传Pusher Notification时,它不起作用。我尝试在本地IDE中触发事件,并且LIVE系统也收到了通知。
我不知道我是否遗漏了要上传的文件,或者我配置错误,还是服务器问题。
这是现有代码:
-header.ctp
<!--REAL TIME NOTIF REQUIREMENT-->
<script src="https://js.pusher.com/4.4/pusher.min.js"></script>
<script>
var pusher = new Pusher('xxxxxxxx', {
cluster: 'ap1',
forceTLS: true
});
var role='<?php echo $userRole; ?>';
var channel = pusher.subscribe('quotestat');
channel.bind('updated', function(data) {
if(role=='customer_service_head' ) {
// ADD VALIDATION HERE
shownotif();
} else if(role=='proprietor') {
shownotif();
}
}
function shownotif() {
$.niftyNoty({
type: 'dark',
title: data['name'],
message: data['message'],
container: 'floating',
// timer: 5000 //UNCOMMENT THIS IF YOU WANT THE NOTIF TO DISMISS AFTER 5 SECONDS
});
}
});
</script>
-AppController.php
require_once(ROOT . DS . 'app' . DS .'Vendor' . DS . 'autoload.php');
class AppController extends Controller {
public function livenotif($datalive) {
echo '<br/>EXECUTING...';
$options = array(
'cluster' => 'ap1',
'useTLS' => true
);
$pusher = new Pusher\Pusher(
'xxxxxxxxxxxx',
'xxxxxxxxxxxx',
'xxxxx',
$options
);
$pusher->trigger('quotestat', 'updated', $datalive);
}
}
-HomeController.php
$datalive['user_id']=$user_id;
$datalive['name']=ucwords(strtolower($name));
$datalive['message']=$message;
$this->livenotif($datalive);
在本地,此代码有效。所以我不明白为什么它不在LIVE上。