websocket客戶端的實現

2021-08-08 10:19:54 字數 2822 閱讀 8515

# coding=utf-8

importwebsocket #第三方核心庫

fromthreadingimportthread

importstruct

fromctypesimport*importmultiprocessing

importos

#服務端傳送訊息

defon_message(

ws, message)

:pack_long=len

(message)

#合併包資訊

ifpack_long>0

:pack_long_form="%sc"%pack_long

buffer

=struct.unpack(pack_long_form,message)

#鏈結錯誤

defon_error(

ws, error)

:print

(error)

#鏈結關閉

defon_close(ws)

:print

(ws)

print

("### 關閉 ###")

defon_open(ws)

:# 傳送心跳包

defrun(

*args

):foriinrange(3

):time.sleep(10)

ws.send(

"以二進位制的方法傳送心跳資訊", opcode

=websocket.abnf.opcode_binary)

time.sleep(1)

print

("thread terminating...")

thread(

target

=run).start()

deflogin(

num)

:token="ws://*****"websocket.enabletrace(

true)

ws==on_message, on_error

=on_error, on_close

=on_close)

ws.on_open=on_open

ws.run_forever()

if__name__=='__main__':ip="*********"#使用程序池的方式來進行多程序

pool=multiprocessing.pool(

processes

=100

) # 最大連線數

data=multiprocessing.manager().queue()

foriinrange(3

):num=i

=(i,))

pool.close()

pool.join()

#本例使用websocket-client庫來作為websocket通訊客戶端。同時使用程序池來進行多程序併發。

#可以作為壓力測試指令碼,和客戶端通訊。

webSocket 傳送訊息給客戶端

在配置websocket 時使用 broker 簡單 就不需要使用訊息伺服器,簡單向前端傳送訊息 override public void configuremessagebroker messagebrokerregistry registry sendto 註解可以將訊息傳送給所有訂閱此位址的客...

使用tcp select實現客戶端與客戶端的通訊

使用多路復用實現客戶端與客戶端進行通訊 原理 客戶端只要一連上伺服器,立馬給伺服器傳送使用者名稱,然後在服務端將newsocketfd 存放在同乙個結構體中,客戶端先給伺服器傳送資料,然後通過伺服器 給客戶端。伺服器先會查詢對應名字的 newsocketfd 然後向該 newsocketfd 中寫入...

瘦客戶端 胖客戶端 智慧型客戶端

胖客戶端模式將應用程式處理分成了兩部分 由使用者的桌面計算機執行的處理和最適合乙個集中的伺服器執行的處理。乙個典型的胖客戶端包含乙個或多個在使用者的pc上執行的應用程式,使用者可以檢視並運算元據 處理一些或所有的業務規則 同時提供乙個豐富的使用者介面做出響應。伺服器負責管理對資料的訪問並負責執行一些...