← Все новости
LiveKit казался простым, пока не начал протухать токен

LiveKit казался простым, пока не начал протухать токен

Когда делаешь голосовой мессенджер на Go, React и LiveKit, медиасервер поначалу кажется самой простой частью: поднял комнату по документации, выдал токен — звук пошёл.На практике всё упирается в протухание JWT. Ровно через полтора часа стрима клиент стабильно вылетал, терял демонстрацию экрана и камеру, а браузер наотрез отказывался перезапускать захват без прямого клика пользователя. Вдобавок параллельный WebSocket жил своей жизнью: сокет моргнул — человека уже стёрли из списка участников, хотя в WebRTC он всё ещё спокойно говорит. Ниже разбор того, как мы боролись с гонками таймеров в Go, почему второй клиент выбивал первый и ради чего пришлось залезть в приватные поля SDK LiveKit. Читать далее