示例#1
0
文件: Client.php 项目: myqee/server
 /**
  * 关闭服务
  */
 public function close()
 {
     if ($this->__client) {
         @$this->__client->close();
         $this->__client = null;
     }
 }
示例#2
0
 protected function request($request)
 {
     $runDir = $this->service->getRunDir();
     $port = (include $runDir . 'service-port.php');
     $sockFile = $runDir . 'service-' . $port . '.sock';
     $client = new Client(SWOOLE_UNIX_STREAM);
     $client->set(['open_length_check' => true, 'package_length_type' => 'N', 'package_length_offset' => 0, 'package_body_offset' => 4]);
     if (!@$client->connect($sockFile, 0, 20)) {
         return false;
     }
     $request = serialize($request);
     $client->send(pack('N', $length = strlen($request)));
     if ($length > 2097152) {
         foreach (str_split($request, 1048576) as $chunk) {
             $client->send($chunk);
         }
     } else {
         $client->send($request);
     }
     $response = $client->recv();
     $client->close();
     if ($response === false) {
         return false;
     }
     $length = unpack('N', $response)[1];
     return unserialize(substr($response, -$length));
 }