Общение клиента и сервера.
Прокачался в общении между сервером с клиентом и клиента с пользователем. Мои скрипт содержит нюансы о которых неплохо бы уведомлять, например, введен неверный пароль от hh.ru или мы потеряли интернет. С этими двумя отлично справился res.status + json с body и всяческие варианты успешных и не очень ответов внутри.
❌ Но тут случилось самое запарное. Я захотел отправлять уведомление клиенту о том что скрипт, который отвечает за авторизацию на стороне сервера, обнаружил капчу. Ее решение занимает от 5 до 30 секунд и я загорелся идеей показывать уведомление до тех пор пока не получу ответ или ошибку.
1⃣ Сначала я думал периодически отправлять GET запрос и получать статус до обнаружения капчи и после, а в этот промежуток показывать уведомление на клиенте, но сами понимаете, подобные запросы будут излишни и пришлось загуглить про socket.io.
2⃣ Socket.io это обертка над вебсокетами (WebSocket), которая упрощает работу с ними. Ранее я уже делал гомункула похожего на чат и это делание показалось мне проще и гибче чем REST API, но изрядно попотев я понял, что мне нужен был тот кто иницировал бы запрос на получение, как в REST.
3⃣ Можно конечно сделать велосипед и отпарвлять уведомления на клиент без участия человека, но зачем когда уже давно придумали Pusher! Пуш-уведомления могут быть иницированы сервером в одностороннем порядке, для этого я добавил переменную которая меняет статус в зависимости от обнаружения капчи и подписался на эти события на клиенте.
Очень годно, с легким API а 200к запросов в сутки мне вполне хватит для показа уведомления. Теперь надо подумать и понять какую нагрузку сможет выдержать мои сервер и сколько паралельных юзеров он сможет потянуть, прежде чем деплоить фичи в боевого бота.
📊 #статистика День 781 == 1219 час в IT
Post #1063
1.72K