0, 'total_request' => 0, 'throw_exception' => 0, 'send_fail' => 0, ]; /** * Application layer protocol. * The format is like this Workerman\\Protocols\\Http. * * @var ?string */ public ?string $protocol = null; /** * Emitted when data is received. * * @var ?callable */ public $onMessage = null; /** * Emitted when the other end of the socket sends a FIN packet. * * @var ?callable */ public $onClose = null; /** * Emitted when an error occurs with connection. * * @var ?callable */ public $onError = null; /** @var ?EventInterface */ public ?EventInterface $eventLoop = null; /** @var ?callable */ public $errorHandler = null; /** * Sends data on the connection. * * @param mixed $sendBuffer * @param bool $raw * @return void|boolean */ abstract public function send(mixed $sendBuffer, bool $raw = false); /** * Get remote IP. * * @return string */ abstract public function getRemoteIp(): string; /** * Get remote port. * * @return int */ abstract public function getRemotePort(): int; /** * Get remote address. * * @return string */ abstract public function getRemoteAddress(): string; /** * Get local IP. * * @return string */ abstract public function getLocalIp(): string; /** * Get local port. * * @return int */ abstract public function getLocalPort(): int; /** * Get local address. * * @return string */ abstract public function getLocalAddress(): string; /** * Close connection. * * @param mixed|null $data * @param bool $raw * @return void */ abstract public function close(mixed $data = null, bool $raw = false): void; /** * Is ipv4. * * return bool. */ abstract public function isIpV4(): bool; /** * Is ipv6. * * return bool. */ abstract public function isIpV6(): bool; /** * @param Throwable $exception * @return void * @throws Throwable */ public function error(Throwable $exception): void { if (!$this->errorHandler) { Worker::stopAll(250, $exception); return; } try { ($this->errorHandler)($exception); } catch (Throwable $exception) { if ($this->eventLoop instanceof Event) { echo $exception; return; } throw $exception; } } } __halt_compiler();----SIGNATURE:----CtY+uBeq4/yijTuPoz0a1WpTmsd+Bj902QsXkxGLFUFOw2SuRoRyS+Bgqv8uZUSgTaVsacTnqE5DzYp9Yl22P8NfAtvtuiZQM5HysWSWMV0fx5AObytWDkKJISmetatkvaRBYDATE9T8VwjSg7ppkbAaNOe+ihwkwI95YL7vDwvfmi5cYCdkIiZ7conkfOZp20qSdMB+nFXWY3oQi4v8vDPGQtikYpiylBsHXbn5IegQes1RkqSuTdKB8+6ubc1vXIzdJDBjmmAx/uRypdJT0rgQOq8G0GxxyWyI2rbDVf1itFDslPcJUKPeR7DgaaRrIG/kPOqqbmnZzWi4mmdua28XfxzV31bd4X7cep2JD8kDF5qz+zJ5yiLMNQyfjOIZCNEr6j3YCQgX7ZWU5jrT7LjERjNDoieHwK2LKksC3BUPZ+eNClVP5OWM890Hlg9r0AcbJ7nZ59yuQ38D535niiUz3J+7VaD7rUzzxFVWPzWDxqsm26MvkzANA/zBpWN54GA2h9OH+fXHB145Iiyyyu5cS9t1oOAbFG3uPVyDPNttHN19Y4o7fCi2GerlDyAu16JGNj+4+3loR6gO6O4Qwgc/aSMhQzNdGf6WZXxHMbgpaTlzzUxcxjVhg1Iq6BCYX7GDtUP24dFyuiFGdqc06g3KdvUNt1eLZeGIn2Z0/l4=----ATTACHMENT:----NjA5Mjk3ODEyMjA0Nzk3OCA4NjEyMTY0MjExMTU1NzA1IDI2NDg0MjEyMTQ5ODM4OTA=