网站建设面试题,项目总结,微信公众号开发创新,wordpress播放优酷websocket-client
websocket-client 是 websocket 客户端#xff0c;提供了对ws低级API的访问。通过导入 websocket 库使用#xff0c;websocket 库是基于事件驱动的设计模式#xff0c;通过定义回调函数来处理接收到的消息、错误和连接关闭等事件。 优势#xff1a;
兼容…websocket-client
websocket-client 是 websocket 客户端提供了对ws低级API的访问。通过导入 websocket 库使用websocket 库是基于事件驱动的设计模式通过定义回调函数来处理接收到的消息、错误和连接关闭等事件。 优势
兼容多个 Python 版本包括 Python 2.7 和 Python 3.x。简单易用入门门槛较低。提供了基本的 WebSocket 功能可以满足一般需求。
劣势
功能相对较少不支持一些高级特性如异步操作和性能优化。
用 websocket 创建长连接
import timeimport websocket
from gevent import threaddef on_message(ws, message):# 处理收到的消息print(Received: message)def on_error(ws, error):# 处理错误print(Error: str(error))def on_close(ws):# 关闭连接print(Connection closed)def on_open(ws):# 连接成功后的操作def run(*args):# 发送心跳包或其他持续性操作while True:ws.send(Ping)time.sleep(1) # 每隔一秒发送一次thread.start_new_thread(run, ())if __name__ __main__:# 创建 WebSocket 连接websocket.enableTrace(True)ws websocket.WebSocketApp(ws://your-websocket-url,on_messageon_message,on_erroron_error,on_closeon_close)ws.on_open on_open# 运行 WebSocket 客户端ws.run_forever()websockets
websockets 具有 server端和 client端采用异步操作模式与 asyncio 模块无缝集成可以实现高性能的 WebSocket 服务器和客户端。 python版本仅支持3.6及更高版本 优势
高性能和可扩展性提供了丰富的特性支持心跳包、自定义协议和 SSL/TLS 加密等高级功能。
劣势
不兼容 Python 2.x 版本。
服务端
import asyncio
import websocketsasync def handle(ws, path):name await ws.recv()print(f接收: {name})greeting f已收到 {name}!await ws.send(greeting)print(f发送: {greeting})if __name__ __main__:s websockets.serve(handle, 127.0.0.1, 9451)event_loop asyncio.get_event_loop()event_loop.run_until_complete(s)event_loop.run_forever()客户端
import asyncio
import websocketsasync def hello():uri ws://127.0.0.1:9451async with websockets.connect(uri) as websocket:name input(发送: )await websocket.send(name)greeting await websocket.recv()print(f接收: {greeting})if __name__ __main__:event_loop asyncio.get_event_loop()event_loop.run_until_complete(hello())