#!/usr/bin/env python

import websocket
import time

try:
    import thread
except ImportError:
    import _thread as thread

runs = 100

def on_message(ws, message):
    print(message)

def on_error(ws, error):
    print(error)

def on_close(ws):
    print("### closed ###")

def on_open(ws):
    def run(*args):
        for i in range(runs):
            time.sleep(5)
            ws.send("Ping")
        time.sleep(1)
        ws.close()
        print("thread terminating...")

    thread.start_new_thread(run, ())


if __name__ == "__main__":

    websocket.enableTrace(True)

    url = "ws://localhost:8082"
    ws = websocket.WebSocketApp(url, on_message = on_message, on_error = on_error, on_close = on_close)

    ws.on_open = on_open
    ws.run_forever()

[((31, 4, 31, 36), '_thread.start_new_thread', 'thread.start_new_thread', ({(31, 28, 31, 31): 'run', (31, 33, 31, 35): '()'}, {}), '(run, ())', True, 'import _thread as thread\n'), ((36, 4, 36, 31), 'websocket.enableTrace', 'websocket.enableTrace', ({(36, 26, 36, 30): '(True)'}, {}), '(True)', False, 'import websocket\n'), ((39, 9, 39, 103), 'websocket.WebSocketApp', 'websocket.WebSocketApp', (), '', False, 'import websocket\n'), ((27, 8, 27, 21), 'time.sleep', 'time.sleep', ({(27, 19, 27, 20): '(1)'}, {}), '(1)', False, 'import time\n'), ((25, 12, 25, 25), 'time.sleep', 'time.sleep', ({(25, 23, 25, 24): '(5)'}, {}), '(5)', False, 'import time\n')]