I want to push notification to client from server when I updated database.
This is my controller:
public function finish() {
$this->autoRender = false;
try {
if($this->request->is('post')) {
$db = $this->ClientCabaInfo->getDataSource();
if($this->Session->check('client_check_data')) {
$data = $this->Session->read('client_check_data');
...
if($this->CabaInfo->save()) {
$this->webNotify();
}
}
$this->redirect('index');
}
} catch (Exception $e) {
$this->EasyLog->log(Conf::r("APP.LOG.APP_FILE"),$e->getMessage(),Conf::r("COM.LOG.FORMAT_ERROR"),'NASUCT');
$this->redirect("/errors/");
}
}
public function webNotify() {
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$time = date('r');
echo "data: {$time}";
flush();
}
And in my view, I called:
if(typeof(EventSource)!=="undefined")
{
var source=new EventSource("<?php echo $this->Html->url('/client_caba/finish'); ?>");
source.onmessage=function(event)
{
notifyMe(event.data);
};
}
else
{
document.getElementById("result").innerHTML="Sorry, your browser does not support server-sent events...";
}
But when I access page: http://localhost:8080/admin/client_caba/finish
It show a dialog and does not finish the action...
Where am I wrong? And please show me how to solved this problem and pass parameter to popup notification... Thanks