# -*- coding: utf-8 -*-
import json
import websocket
import _thread as thread
# try:
# import thread
# except ImportError:
# import _thread as thread
def on_message(self, message): # 第一個參數必須傳遞
print(message)
def on_error(self, error):
print(error)
def on_close(self):
print("### closed ###")
def on_open(self):
def run():
for i in range(3): # 可以死循環發送
ws.send(json.dumps({1: "123123"}))
# ws.close() # 發送完畢, 可以不關閉
thread.start_new_thread(run, ()) # 啟動線程執行run()函數發送數據
if __name__ == "__main__":
while True:
try:
websocket.enableTrace(True) # True 默認在控制台打印連接和信息發送接收情況
ws = websocket.WebSocketApp("ws://192.168.130.164:8765/api/v1/data/",
on_open=on_open, # 連接后自動調用發送函數,
on_message=on_message, # 接收消息調用
on_error=on_error,
on_close=on_close)
ws.run_forever() # 開啟長連接
# except KeyboardInterrupt: # 會被ws內部捕捉
# print(123)
# break
except Exception as e: # ws 斷開 或者psycopg2.OperationalError
logger.warning("ws 斷開 或者psycopg2.OperationalError, {}: {}".format(type(e), e))
continue