Ejemplo n.º 1
0
 protected function createMessage($from, $msg)
 {
     echo sprintf('User %d sending message "%s" to user %d' . "\n", $from->userId, $msg->message, $msg->userTo);
     $dialog = new Dialog();
     $dialog->from = $from->userId;
     $dialog->to = $msg->userTo;
     if ($dialog->validate()) {
         if (($existedDialog = Dialog::byUsers($dialog->from, $dialog->to)->first()) === null) {
             $dialog->save();
             $existedDialog = $dialog;
         }
         $message = new Message();
         $message->from = $from->userId;
         $message->dialog_id = $existedDialog->id;
         $message->text = $msg->message;
         if ($message->validate()) {
             $message->save();
             foreach ($this->clients as $client) {
                 if ($client->userId == $from->userId || $client->userId == $msg->userTo || $client->isAdmin === true) {
                     $view = view('chat._message', ['messages' => [$message], 'isAdmin' => $client->isAdmin]);
                     $sendData = ['action' => Message::CREATE_ACTION_NAME, 'html' => $view->render()];
                     $client->send(json_encode($sendData));
                 }
             }
         }
     }
 }