Example #1
0
 /**
  * Process message request. Find user chat room and send message to other users
  * in this chat room
  *
  * @access private
  * @param $rid
  * @param array $data
  * @return void
  */
 private function messageRequest($rid, array $data)
 {
     Yii::info('Message from: ' . $rid, 'chat');
     $chat = $this->cm->getUserChat($rid);
     if (!$chat) {
         return;
     }
     $data['message']['timestamp'] = time();
     $user = $this->cm->getUserByRid($rid);
     $this->cm->storeMessage($user, $chat, $data['message']);
     foreach ($chat->getUsers() as $user) {
         //need not to send message for self
         if ($user->getRid() == $rid) {
             continue;
         }
         $conn = $this->clients[$user->getRid()];
         $conn->send(Json::encode(['type' => 'message', 'data' => $data]));
     }
 }