public function postMessage() { $required = array('interlocutor_id' => true, 'text' => true); $params = $this->controller->getParams($required); $thread = \MessagingThread::model()->findOrCreate($this->controller->identity->getId(), $params['interlocutor_id']); $message = \MessagingMessage::model()->create($params['text'], $thread->id, $this->controller->identity->getId(), array()); if (!$message) { throw new \Exception(print_r($message->errors, true)); } $message->refresh(); $this->controller->data = $message; $comet = new \CometModel(); $messageModel = \MessagingMessage::model()->withMyStatsOnTop($this->controller->identity->getId())->findByPk($message->id); //self $data = array('dialog' => array('id' => $params['interlocutor_id']), 'message' => \DialogForm::messageToJson($messageModel, $this->controller->identity->getId(), $messageModel->messageUsers[1]->user_id, $messageModel->messageUsers[1])); $comet->send($this->controller->identity->getId(), $data, \CometModel::MESSAGING_MESSAGE_ADDED); //interlocutor $data = array('dialog' => array('id' => $this->controller->identity->getId()), 'message' => \DialogForm::messageToJson($messageModel, $messageModel->messageUsers[1]->user_id, $this->controller->identity->getId(), $messageModel->messageUsers[1])); $comet->send($params['interlocutor_id'], $data, \CometModel::MESSAGING_MESSAGE_ADDED); }