【websocket】websocket-client 与 websockets

这篇具有很好参考价值的文章主要介绍了【websocket】websocket-client 与 websockets。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

websocket-client

websocket-client 是 websocket 客户端,提供了对ws低级API的访问。通过导入 websocket 库使用,websocket 库是基于事件驱动的设计模式,通过定义回调函数来处理接收到的消息、错误和连接关闭等事件。
优势:

  • 兼容多个 Python 版本,包括 Python 2.7 和 Python 3.x。
  • 简单易用,入门门槛较低。
  • 提供了基本的 WebSocket 功能,可以满足一般需求。

劣势:文章来源地址https://www.toymoban.com/news/detail-654948.html

  • 功能相对较少,不支持一些高级特性,如异步操作和性能优化。
"""用 websocket 创建长连接"""
import time

import websocket
from gevent import thread


def 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_message=on_message,
        on_error=on_error,
        on_close=on_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 websockets


async 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 websockets


async def hello():
    uri = "ws://127.0.0.1:9451"
    async 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())

到了这里,关于【websocket】websocket-client 与 websockets的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • websocket实现go(server)与c#(client)通讯

    使用到github.com/gorilla/websocket C#操作websocket当客户端使用时使用 System.Net.Websockets 这个命名空间下的 ClientWebSocket 类 winform的设计界面如下: 代码如下: 注意:无论是客户端断开还是服务端断开,如果正在读取消息,则会触发错误。利用此机制可以很方便的处理重连问题。

    2024年02月06日
    浏览(25)
  • C++实现websocket两server两client半双工通信(基于boost!!!)

       自身环境:ubuntu18.04+gcc7.5.0+boost1.7,3   gcc或者g++一般都有,这里主要介绍一下boost的配置方法   执行如下代码:   装完后发现还是会报错:#include <boost/beast/core.hpp> no such file   这个时候再加一个:   然后编译执行代码就可以了,在这里说明下我不太确定是

    2024年02月12日
    浏览(30)
  • C++实现websocket单server单client全双工通信(基于boost!!!)

       自身环境:ubuntu18.04+gcc7.5.0+boost1.7,3   gcc或者g++一般都有,这里主要介绍一下boost的配置方法   执行如下代码:   装完后发现还是会报错:#include <boost/beast/core.hpp> no such file   这个时候再加一个:   然后编译执行代码就可以了,在这里说明下我不太确定是

    2024年02月11日
    浏览(27)
  • flutter开发实战-长链接WebSocket使用stomp协议stomp_dart_client

    flutter开发实战-长链接WebSocket使用stomp协议stomp_dart_client 在app中经常会使用长连接进行消息通信,这里记录一下基于websocket使用stomp协议的使用。 1.1 stomp介绍 stomp,Streaming Text Orientated Message Protocol,是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息的中间件

    2024年02月13日
    浏览(37)
  • python用websockets创建服务端websocket创建客户端

    服务端 客户端

    2024年02月22日
    浏览(42)
  • Python执行websocket连接出现websocket has no attribute enableTrace错误

    在websocket同服务器进行连接时,出现没有 enableTrace 属性: 检查一下当前安装的库,websocket: 检查这个库的相关发布信息:已经很久没维护了,早已被弃用: 后续Python中websocket库改为使用websocket-client,需要重新安装: 卸载websocket,这个已弃用,websockets中没有 enableTrace 模块

    2024年03月13日
    浏览(48)
  • python --连接websocket

    如果只是模拟js端发送接收的话,已经有了websocket server的话,只有client就好了 接下来,你可以使用以下代码来连接WebSocket服务器: 在上面的代码中,我们定义了四个回调函数 on_message 、 on_error 、 on_close 和 on_open ,分别用于处理接收到的消息、连接错 误、关闭连接和连接成

    2024年02月09日
    浏览(31)
  • Python中的WebSocket编程

    WebSocket是一种网络通信协议,它在单个TCP连接上提供全双工的通信信道。在本篇文章中,我们将探讨如何在Python中使用WebSocket实现实时通信。 1. 什么是WebSocket? WebSocket协议是在2008年由Web应用程序设计师和开发人员创建的,目的是为了在Web浏览器和服务器之间提供更高效、更

    2024年01月20日
    浏览(30)
  • python---websocket的使用

    目录 一:简介 二:对比:   Http:   WebSocket: 三:socket实现步骤   服务端:   客户端: 四:简单实现,实现连接   服务端:   浏览器: 五:数据接收规则   数据帧格式:   实现规则解码:    实现循环获取数据 六:数据发送规则(需要发送二进制包struc

    2024年02月04日
    浏览(34)
  • python的websocket方法教程

    WebSocket是一种网络通信协议,它在单个TCP连接上提供全双工的通信信道。在本篇文章中,我们将探讨如何在Python中使用WebSocket实现实时通信。 websockets是Python中最常用的网络库之一,也是websocket协议的Python实现。它不仅作为基础组件在众多项目中发挥着重要作用,其源码也值

    2024年02月01日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包