#! /usr/bin/env python3
# # -*- coding: utf-8 -*-

import asyncio, json, websockets
from py.ogl import ogl

PORT = 8001
#render = ogl()

async def handle_message(websocket, path):
    # Get received data from websocket
    #data = await websocket.recv()
    # Send response back to client to acknowledge receiving message
    #await websocket.send("Thanks for your message: " + data)

    global render
    msg = await websocket.recv()
    event, val = msg.split('?')
    print('Message received: {}\n'.format(event))
    val = json.loads(val)

    if event == 'img':
        if not render:
            render = ogl()
        await websocket.send(render.get_frame())

# Create websocket server
start_server = websockets.serve(handle_message, "localhost", PORT)
if start_server:
    print("Message server started at port", PORT)

# Start and run websocket server forever
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
