websocket和websocket之间的区别

2024-05-03 23:18:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我不理解websocket(websocket客户端)和websocket之间的区别。 我想了解两者之间的区别,知道哪一种是最佳的

我有一个代码,似乎做同样的事情

import websockets
import asyncio
import json

async def capture_data():
    uri = "wss://www.bitmex.com/realtime?subscribe=instrument:XBTUSD"
    #uri = "wss://www.bitmex.com/realtime"
    async with websockets.connect(uri) as websocket:
        while True:
            data = await websocket.recv()
            data = json.loads(data)
            try :
                #print('\n', data['data'][0]["lastPrice"])
                print('\n', data)
            except KeyError:
                continue


asyncio.get_event_loop().run_until_complete(capture_data())
import websocket
import json

def on_open(ws):
    print("opened")

    auth_data = {
        'op': 'subscribe',
        'args': ['instrument:XBTUSD']
    }
    ws.send(json.dumps(auth_data))

def on_message(ws, message):
    message = json.loads(message)
    print(message)

def on_close(ws):
    print("closed connection")


socket = "wss://www.bitmex.com/realtime"                 
ws = websocket.WebSocketApp(socket, 
                            on_open=on_open, 
                            on_message=on_message,
                            on_close=on_close)     
ws.run_forever()

编辑:

Python是否强大到可以通过websocket接收大量数据? 在流量大的时候,我可能每秒有数千条消息,甚至在短时间内有上万条

我见过很多关于Nodejs的东西,它们可能比python好,但我不懂js,即使我只是从互联网上复制代码,如果我必须将数据发送到python脚本并进行处理,我也不确定我是否会浪费时间


Tags: importcomjsonmessagedatawsondef
1条回答
网友
1楼 · 发布于 2024-05-03 23:18:13

websocket-client实现WebSocketApp,它更像是websocket的JavaScript实现

我更喜欢WebSocketApp作为线程运行:

socket = "wss://www.bitmex.com/realtime"                 
ws = websocket.WebSocketApp(socket, 
                            on_open=on_open, 
                            on_message=on_message,
                            on_close=on_close) 

wst = threading.Thread(target=lambda: ws.run_forever())
wst.daemon = True
wst.start()

# your code continues here ...

现在您有了异步WebSocket。主框架程序正在运行,每次收到消息时,都会调用函数on_messageon_message自动处理消息,无需主机中断

相关问题 更多 >