3

可能重复:
在 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
}
4

0 回答 0