import asyncio

import ssl

import websockets

TV_IP = "192.168.0.20"

async def handler(client_ws):

ssl_ctx = ssl.create_default_context()

ssl_ctx.check_hostname = False

ssl_ctx.verify_mode = ssl.CERT_NONE

async with websockets.connect(

f"wss://{TV_IP}:3001",

ssl=ssl_ctx,

subprotocols=["com.lge.WebSocket"]

) as tv_ws:

async def c2t():

async for msg in client_ws:

await tv_ws.send(msg)

async def t2c():

async for msg in tv_ws:

await client_ws.send(msg)

await asyncio.gather(c2t(), t2c())

async def main():

print("LG proxy running on port 3000...")

server = await websockets.serve(handler, "0.0.0.0", 3000)

await server.wait_closed()

asyncio.run(main())