Inheritance: extends pocketmine\Thread
 public function process()
 {
     while (strlen($buffer = $this->client->readThreadToMainPacket()) > 0) {
         $this->handlePacket($buffer);
     }
     $this->connected = $this->client->isConnected();
     if ($this->client->isNeedAuth()) {
         $this->synapse->connect();
         $this->client->setNeedAuth(false);
     }
 }
Ejemplo n.º 2
0
 public function update()
 {
     if ($this->server->needReconnect and $this->connected) {
         $this->connected = false;
         $this->server->needReconnect = false;
     }
     if ($this->connected) {
         $err = socket_last_error($this->socket->getSocket());
         socket_clear_error($this->socket->getSocket());
         if ($err == 10057 or $err == 10054) {
             $this->server->getLogger()->error("Synapse connection has disconnected unexpectedly");
             $this->connected = false;
             $this->server->setConnected(false);
         } else {
             $data = @socket_read($this->socket->getSocket(), 65535, PHP_BINARY_READ);
             if ($data != "") {
                 $this->receiveBuffer .= $data;
             }
         }
     } else {
         if (($time = microtime(true)) - $this->lastCheck >= 3) {
             //re-connect
             $this->server->getLogger()->notice("Trying to re-connect to Synapse Server");
             if ($this->socket->connect()) {
                 $this->connected = true;
                 @socket_getpeername($this->socket->getSocket(), $address, $port);
                 $this->ip = $address;
                 $this->port = $port;
                 $this->server->setConnected(true);
                 $this->server->setNeedAuth(true);
             }
             $this->lastCheck = $time;
         }
     }
 }