websocket客户端的实现

来源:互联网 发布:linux python模块 编辑:程序博客网 时间:2024/05/22 14:36
# coding=utf-8import websocket  #第三方核心库from threading import Threadimport structfrom ctypes import *import multiprocessingimport os#服务端发送消息def on_message(ws, message):    pack_long = len(message)    #合并包信息    if pack_long > 0:        pack_long_form = "%sc" % pack_long        buffer = struct.unpack(pack_long_form,message)#链接错误def on_error(ws, error):    print(error)#链接关闭def on_close(ws):    print(ws)    print("### 关闭 ###")def on_open(ws):    # 发送心跳包    def run(*args):        for i in range(3):            time.sleep(10)            ws.send("以二进制的方法传送心跳信息", opcode=websocket.ABNF.OPCODE_BINARY)        time.sleep(1)        print("Thread terminating...")    Thread(target=run).start()def login(num):    token = "ws://*****"    websocket.enableTrace(True)    ws = websocket.WebSocketApp(token, on_message=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()    for i in range(3):        num = i        pool.apply_async(login, args=(i,))    pool.close()    pool.join()#本例使用websocket-client库来作为websocket通信客户端。同时使用进程池来进行多进程并发。#可以作为压力测试脚本,和客户端通信。#转载请注明链接地址

原创粉丝点击