Esempio n. 1
0
 /**
  * 处理请求统计
  *
  * @param ConnectionInterface $connection
  * @param string              $data
  * @return bool|void
  */
 public function onMessage($connection, $data)
 {
     Base::getLog()->info(__METHOD__ . ' handle message', $data);
     $data = json_decode($data, true);
     if (empty($data) || !isset($data['cmd'])) {
         Base::getLog()->info(__METHOD__ . ' no cmd param, or the data format is wrong', $data);
         return false;
     }
     // 无法解析的包
     if (empty($data['cmd']) || $data['cmd'] != 'REPORT_IP') {
         return false;
     }
     Base::getLog()->info(__METHOD__ . ' response ok');
     /** @var \Workerman\Connection\ConnectionInterface $connection */
     return $connection->send(json_encode(['result' => 'ok']));
 }
Esempio n. 2
0
 /**
  * 处理请求统计
  *
  * @param ConnectionInterface $connection
  * @param string              $receiveBuffer
  */
 public function onMessage($connection, $receiveBuffer)
 {
     $requestData = json_decode(trim($receiveBuffer), true);
     $module = Arr::get($requestData, 'module');
     $interface = Arr::get($requestData, 'interface');
     $cmd = Arr::get($requestData, 'cmd');
     $startTime = Arr::get($requestData, 'start_time', '');
     $endTime = Arr::get($requestData, 'end_time', '');
     $date = Arr::get($requestData, 'date', '');
     $code = Arr::get($requestData, 'code', '');
     $msg = Arr::get($requestData, 'msg', '');
     $offset = Arr::get($requestData, 'offset', '');
     $count = Arr::get($requestData, 'count', 10);
     // 根据发送过来的cmd参数
     switch ($cmd) {
         // 获取统计数据
         case 'get-statistic':
             $buffer = ['modules' => $this->getModules($module), 'statistic' => $this->getStatistic($date, $module, $interface)];
             $buffer = json_encode($buffer) . "\n";
             $connection->send($buffer);
             break;
             // 获取日志
         // 获取日志
         case 'get-log':
             $buffer = json_encode($this->getStasticLog($module, $interface, $startTime, $endTime, $code, $msg, $offset, $count)) . "\n";
             $connection->send($buffer);
             break;
         default:
             $connection->send('pack err');
     }
 }
 /**
  * 打包
  * @param string $buffer
  * @return string
  */
 public static function encode($buffer, ConnectionInterface $connection)
 {
     $len = strlen($buffer);
     // 还没握手不能发数据
     if (empty($connection->websocketHandshake)) {
         $connection->send("HTTP/1.1 400 Bad Request\r\n\r\n<b>400 Bad Request</b><br>Send data before handshake. ", true);
         $connection->close();
         return false;
     }
     $first_byte = $connection->websocketType;
     if ($len <= 125) {
         return $first_byte . chr($len) . $buffer;
     } else {
         if ($len <= 65535) {
             return $first_byte . chr(126) . pack("n", $len) . $buffer;
         } else {
             return $first_byte . chr(127) . pack("xxxxN", $len) . $buffer;
         }
     }
 }