@Guywithinterest

Как открыть доступ к локальному вебсокет-серверу через Ngrok и не получить ошибку Content-Security-Policy?

Всем привет!

У меня есть локальный вебсокет-сервер, написанный на Python, который (пока что в целях разработки) мне нужно выложить в интернет, чтобы к нему можно было подключиться. Пару дней назад все работало без каких-либо проблем, а сегодня, при попытке подключиться к серверу через консоль в браузере, я стал получать ошибку Content-Security-Policy: The page’s settings blocked the loading of a resource at ws://2.tcp.eu.ngrok.io:16620/ (“connect-src”) Не знаю, связано ли это с установкой на мой LInux Mint браузера Opera (звучит абсурдно, но у меня после установки начались проблемы с просмотром видео во всех браузерах, вдруг и здесь проблема), но в любом случае я хочу попросить у вас и подсказок, и советов о том, как эту задачу вообще нужно решать, и где конкретно я ошибаюсь.

Вебсокет-сервер Python очень простой, принимает и отправляет сообщение в ответ, запущен локально:

async def handler(websocket, path):
    async with aiohttp.ClientSession() as session:
        try:
            await websocket.send(json.dumps({'type': 'welcome', 'message': 'Welcome to the server!'}))
            while True:
                message = await websocket.recv()
                data = json.loads(message)
                print(f"Received message from {websocket.remote_address}: {data}")
                await websocket.send(json.dumps(data))
        except Exception as e:
            print(f"Error: {e}")
            response = {'type': 'error', 'message': str(e)}
            await websocket.send(json.dumps(response))

start_server = websockets.serve(handler, "127.0.0.1",  8080)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()


Ngrok запускаю через терминал командой ngrok tcp 8080 и получаю в ответ информацию о запущенном и работающем сервере:
Forwarding                    tcp://2.tcp.eu.ngrok.io:16620 -> localhost:8080


Затем в консоли в браузере пытаюсь подключиться -
let ws = new WebSocket("ws://2.tcp.eu.ngrok.io:16620");

И получаю ошибку
Content-Security-Policy: The page’s settings blocked the loading of a resource at ws://2.tcp.eu.ngrok.io:16620/ (“connect-src”). 
Uncaught NS_ERROR_CONTENT_BLOCKED:


Что не так и на каком этапе? И как это исправить?
  • Вопрос задан
  • 225 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы