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); } }
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; } } }