可能重复:
在 PHP 中使用彗星?
我正在编写一个后端用 PHP 编写的社交应用程序(我使用的是 FuelPHP 框架)。我想通知客户端服务器上发生了某些事件,其方式与 Facebook 通知的方式类似。
目前我只是使用 AJAX 重复轮询,但我认为我可以使用服务器上的一个事件来实现更好的实现,该事件被触发到客户端。
使用 node.js,我已经使用 Web 套接字和 socket.io 模块实现了这种通信。
有什么办法可以在 PHP 中做这种事情吗?PHP真的那么不适合这种通信吗?我可以以某种方式生成一个基于节点的子进程吗?
这是缺乏知识,有人可以指出我可以研究的解决方案吗?
这段代码可以说明我正在尝试做的事情......
private function initEvents() {
$events = Event::instance('chat_event_listener');
$events->register('messageWasReceived', function($message){
$this->handleMessageReceived($message);
});
}
public function post_addNewMessage(){
//Client uses Posts message to this method using AJAX
$message = \Input::post('message');
Event::instance('chat_event_listener')->trigger('messageWasReceived', $message);
return $this->response(array(
'success' => true,
'data' => 'TO DO',
));
}
private function handleMessageReceived($message){
$this->firephp->log('Message received on server: ' . $message);
//notify client
}