KX Community

Find answers, ask questions, and connect with our KX Community around the world.
KX Community Guidelines

Home Forums kdb+ kdb+ and websockets Re: kdb+ and websockets

  • rocuinneagain

    Member
    February 7, 2023 at 12:00 am

    q connection:

    q)wsConn:{x:”/” vs x;h:(`$”:ws://”,x 0) “GET /”,x[1],” HTTP/1.1rnHost: “,x[0],”rnrn”;-1 h 1; h 0} q)wsConn”localhost:8000/ws-replay?exchange=bitmex&from=2019-10-01&to=2019-10-02″ HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk= Date: Tue, 07 Feb 2023 12:12:27 GMT Server: Python/3.8 websockets/10.4 796i

    Basic Python websocket server:

    import asyncio 
    import logging 
    import websockets 
    logging.basicConfig( format="%(message)s", level=logging.DEBUG, ) 
    async def handler(websocket, path): 
        data = await websocket.recv() 
        reply = f"Data recieved as: {data}!" 
        await websocket.send(reply) 
        start_server = websockets.serve(handler, "localhost", 8000) 
        asyncio.get_event_loop().run_until_complete(start_server) 
        asyncio.get_event_loop().run_forever()

    Produces logs:

    = connection is CONNECTING < GET /ws-replay?exchange=bitmex&from=2019-10-01&to=2019-10-02 HTTP/1.1 < Host: localhost:8000 < Connection: Upgrade < Upgrade: websocket < Sec-WebSocket-Version: 13 < Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== > HTTP/1.1 101 Switching Protocols > Upgrade: websocket > Connection: Upgrade > Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk= > Date: Tue, 07 Feb 2023 12:15:48 GMT > Server: Python/3.8 websockets/10.4 connection open = connection is OPEN