PHP Comet(服务器端推送)

时间:2013-01-21 09:38:20

标签: php websocket comet server-push fuelphp

  

可能重复:
  Using comet with 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
}

0 个答案:

没有答案