Небольшое исправление LongPoll

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich 2021-07-28 17:50:27 +10:00
parent 2f9352fb13
commit d307d4220e
2 changed files with 30 additions and 11 deletions

View File

@ -63,16 +63,35 @@ final class longpoll
// Инициализация
if (empty($robot->id)) throw new Exception('Необходимо указать идентификатор ВКонтакте');
if (empty($robot->key)) throw new Exception('Необходимо указать ключ для доступа к LongPoll');
if (empty($robot->api['v'])) throw new Exception('Необходимо указать версию используемого API ВКонтакте');
if (empty($robot->api) || empty($robot->api['v'])) {
// Настройки API не инициализированы или не соблюдены условия
// Безопасная инициализация
$robot->api->init();
}
// Остановка процессов-дубликатов
if (!file_exists(core::init()->path_temp)) {
// Если не существует каталога temp, то создать
mkdir(core::init()->path_temp, 0775, true);
}
if (file_exists($lock = core::init()->path_temp . '/' . $this->robot->id . '_' . (int) $this->robot->session . '.longpoll')) {
// Если существует файл-блокировщик, то удалить его
unlink($lock);
try {
// Поиск директории для временных файлов
if (!file_exists(core::init()->path_temp)) {
// Не удалось найти директорию для временных файлов
if (!mkdir(core::init()->path_temp, 0775, true)) {
// Не удалось создать директорию для временных файлов
throw new Exception('Не удалось создать директорию для временных файлов', 500);
}
}
// Поиск файла-блокировщика
if (file_exists($lock = core::init()->path_temp . '/' . $this->robot->id . '_' . (int) $this->robot->session . '.longpoll')) {
// Удалось найти файл-блокировщик
// Удаление файла
unlink($lock);
}
} catch (Exception $e) {
throw new Exception('Не удалось обработать процессы-дубликаты', 500, $e->getPrevious());
}
}
@ -180,7 +199,7 @@ final class longpoll
public function get(int $wait = 25): array
{
if (empty($this->key) || empty($this->server) || empty($this->ts)) {
// Если не инициализирован LongPoll-сервер
// LongPoll-сервер не инициализирован
// Запрос на получение доступа и данных LongPoll-сервера
$response = json_decode($this->robot->browser->request(method: 'POST', uri: 'groups.getLongPollServer', options: [
@ -190,7 +209,8 @@ final class longpoll
if (isset($response->error)) {
// Что-то сделать
var_export($response->error); die;
var_export($response->error);
die;
}
// Инициализация

View File

@ -1 +0,0 @@
9104