python websocket 客戶端連接


# -*- 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM