Passive update polling

This commit is contained in:
Daniil Gentili 2017-12-16 18:32:05 +00:00
parent 237638aecf
commit 514aa7e1a8

View File

@ -65,7 +65,6 @@ trait UpdateHandler
$this->updates[$this->updates_key++] = $update; $this->updates[$this->updates_key++] = $update;
//\danog\MadelineProto\Logger::log(['Stored ', $update); //\danog\MadelineProto\Logger::log(['Stored ', $update);
} }
public function get_updates($params = []) public function get_updates($params = [])
{ {
if (!$this->settings['updates']['handle_updates']) { if (!$this->settings['updates']['handle_updates']) {
@ -80,7 +79,24 @@ trait UpdateHandler
$time = microtime(true); $time = microtime(true);
try { try {
try {
if (($error = $this->recv_message($this->datacenter->curdc)) !== true) {
if ($error === -404) {
if ($this->datacenter->sockets[$this->datacenter->curdc]->temp_auth_key !== null) {
\danog\MadelineProto\Logger::log(['WARNING: Resetting auth key...'], \danog\MadelineProto\Logger::WARNING);
$this->datacenter->sockets[$this->datacenter->curdc]->temp_auth_key = null;
$this->init_authorization();
throw new \danog\MadelineProto\Exception('I had to recreate the temporary authorization key');
}
}
throw new \danog\MadelineProto\RPCErrorException($error, $error);
}
$only_updates = $this->handle_messages($this->datacenter->curdc);
} catch (\danog\MadelineProto\NothingInTheSocketException $e) {}
if (time() - $this->last_recv > 30) {
var_dump("Getting difference");
$this->get_updates_difference(); $this->get_updates_difference();
}
} catch (\danog\MadelineProto\RPCErrorException $e) { } catch (\danog\MadelineProto\RPCErrorException $e) {
if ($e->rpc !== 'RPC_CALL_FAIL') { if ($e->rpc !== 'RPC_CALL_FAIL') {
throw $e; throw $e;