Ловим поток из анти-детект браузера
Если наш бэкенд не может подключиться к казино напрямую (гео-блок, Cloudflare по IP, антибот — знакомые симптомы: «сайт не грузится вне Multilogin / AdsPower / Dolphin{anty} / GoLogin / Kameleo»), это лечится не со стороны сервера. Твой антидетект уже держит авторизованную сессию и валидный WebSocket — мы просто слушаем.
Как установить (30 секунд)
- В антидетект-профиле поставь расширение-юзерскрипт. Tampermonkey (Chrome) или Violentmonkey (любой Chromium) подходят.
- Открой ссылку ниже — Tampermonkey сам предложит установить скрипт
(BACKEND зашит под текущий хост):
⇩ Установить ws_bridge.user.jsДругой хост?/bridge/userscript?backend=https://bj.domain.com - Зайди в казино → открой любой Pragmatic Live Blackjack стол.
- Этот лобби-UI обновится через пару секунд — стол появится со статусом running и карты начнут капать в real-time.
Что под капотом
Скрипт проксирует window.WebSocket. Когда страница открывает
соединение вида wss://gs*.pragmaticplaylive.net/game?JSESSIONID=...&tableId=...,
мы:
- Извлекаем
tableIdиз URL. - Регистрируем стол в нашем бэкенде (
POST /api/bridge/register). - Каждое входящее XML-сообщение пачкой раз в 250мс шлём в
POST /api/bridge/raw/{tableId}. - Бэкенд парсит тем же Pragmatic-парсером, что и для прямого подключения, и гонит события через handler → композиция колоды, TC, стратегия, WS-broadcast подписчикам детальной страницы.
Конфигурация
По умолчанию скрипт шлёт на http://localhost:8765. Если наш
бэкенд живёт на другом адресе, в любой странице пропиши один раз в консоли:
window.__BJ_BACKEND__ = "http://10.0.0.5:8765";
или поправь константу BACKEND в самом скрипте.
Работает ли с Ezugi / Evolution?
Да, если нужен аналогичный хук на *.ezugi.com / домен Evolution —
добавь @match правило и укажи как вытащить tableId из URL (у
них другой формат). Трансляция во внутренний JSON-формат — через
существующий POST /api/ingest/{tableId}, это уже работает для
любых провайдеров.
Diagnostics
Проверка: в DevTools консоли сайта казино при загруженном скрипте должно
появиться [bj-bridge] WS bridge active, forwarding to http://localhost:8765
(если включишь DEBUG = true в скрипте). При удачном поке
следующие строки — [bj-bridge] registered table bj....
Если backend ругается на CORS — убедись что сервер запущен (GET /
отдаёт HTML). CORS на бэкенде открыт для всех origin'ов — он слушает только
localhost, так что это безопасно.