/** * 发送消息 * @return boolean */ public function sendAction() { $messageModel = new MessageModel($this->userInfo['userId']); $result = $messageModel->save($this->requestParams); if ($messageModel->getErrCode()) { $this->putError($messageModel->getErrCode(), $messageModel->getErrInfo()); return false; } $this->response($result); return false; }
/** * 消息存储 */ public function saveMessageAction() { echo date('Y-m-d H:i:s') . ' userMessage is started!' . PHP_EOL; $queueKey = Yaf\Application::app()->getConfig()->redisKeys->messageQueue; $redis = RedisFactory::instance('ims', true); while (true) { $total = 0; while ($message = $redis->lPop($queueKey)) { $messageModel = new MessageModel(); if (!$messageModel->save($message)) { if ($messageModel->getErrCode() == 2002) { //数据库连接消失,消息重新入队,中断进程 $redis->lpush($queueKey, $message); exit; } } pushModel::newMessage($message); $total++; } try { // 闲置时检查Redis连接 $redis->ping(); } catch (\Exception $e) { $redis = RedisFactory::instance('ims', true, true); //重连 } if ($total > 0) { echo date('Y-m-d H:i:s') . ' storage message ' . $total . PHP_EOL; } sleep(1); } exit; }
public function saveAction() { $message = array(); $message['catId'] = 1; $message['sender'] = 10; $message['senderNickname'] = 'sender_10'; $message['receiver'] = 12; $message['receiverNickname'] = 'receiver_12'; $message['content'] = 'content_' . date('YmdHis'); $messageModel = new MessageModel(); $respones = array(); $respones['result'] = $messageModel->save($message); $respones['errCode'] = $messageModel->getErrCode(); $respones['errInfo'] = $messageModel->getErrInfo(); $this->getResponse()->setBody(json_encode($respones)); }
public function sendAction() { $params = $this->getRequest()->getParams(); $toKen = $params['toKen']; $userModel = new UserModel(); $userInfo = $userModel->getUserInfoByToken($toKen); $message = array(); $message['catId'] = 1; $message['sender'] = $userInfo['userId']; $message['senderNickname'] = $userInfo['nickname']; $message['receiver'] = 12; $message['receiverNickname'] = 'receiver_12'; $message['content'] = 'content_' . date('YmdHis'); $messageModel = new MessageModel(); $respones = array(); $respones['result'] = $messageModel->save($message); $respones['errCode'] = $messageModel->getErrCode(); $respones['errInfo'] = $messageModel->getErrInfo(); $this->getResponse()->setBody(json_encode($respones)); }