import websocket import _thread import time def on_message(ws, message): print('Received message:', message) def on_error(ws, error): print(error) def on_close(ws, close_status_code, close_msg): print("### closed ###") def on_open(ws): def run(*args): for i in range(3): time.sleep(1) ws.send(bytes("{ \"t\": \"ping\", \"d\": {}}", 'utf-8'), websocket.ABNF.OPCODE_BINARY) time.sleep(1) ws.close() print("thread terminating...") _thread.start_new_thread(run, ()) if __name__ == "__main__": websocket.enableTrace(True) ws = websocket.WebSocketApp("ws://127.0.0.1:12345/", on_open=on_open, on_message=on_message, on_error=on_error, on_close=on_close) ws.run_forever()