Python-Websocket的介绍及使用方法

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

👏👏👏

哈喽!大家好,我是【太阳打伞】,一位热爱分享各种技术的博主!😍😍😍

⭐【太阳打伞】的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过。✊✊✊

⭐【太阳打伞】的博客中所有涉及命令、代码的地方,除了提供图片供大家参考,另外会在图片下方提供一份纯文本格式的命令或者代码方便大家粘贴复制直接执行命令或者运行代码。🤝🤝🤝

⭐如果你对技术有着浓厚的兴趣,欢迎关注【太阳打伞】,欢迎大家和我一起交流。😘😘😘

❤️❤️❤️感谢各位朋友接下来的阅读❤️❤️❤️
 

1.简介

WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

Python-Websocket的介绍及使用方法

 

2.特点

它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。

  • 较少的控制开销
  • 更强的实时性
  • 保持连接状态
  • 更好的二进制支持
  • 可以支持扩展
  • 更好的压缩效果

连接成功状态码

101:HTTP协议切换为WebSocket协议。

3.WebSocket事件

Websocket对象的相关事件
事件 事件处理程序 描述
open Socket.onopen 连接建立时触发
message Socket.onmessage 客户端接收服务端数据时触发
error Socket.onerror 通信发生错误时触发
close Socket.onclose 连接关闭时触发

4.WebSocket方法

WebSocket对象的相关方法
方法 描述
Socket.send() 使用连接发送数据
Socket.close() 关闭连接

5.使用方法

(1).前端vue 3.0


根据token来建立链接信息,需要把当前用户的token传到服务器

"token":localStorage.getItem("token"),


//声明一个方法
init_websocket:function(){

        //建立websocket链接
      if("WebSocket" in window){

        var ws = new WebSocket("ws://localhost:8000/websocket/?token=" + this.token);

        ws.onopen = function(){

          //web socket 已连接上,使用send()方法发送数据

          console.log("建立链接");
          ws.send("我是前端传来的信息");
        }

        ws.onmessage = function(evt){

          console.log(evt.data);
            
            
          
          //反序列化
          


          }


          alert("数据已接收")
        }

        ws.onclose = function(){

          //关闭websocket

          console.log("链接关闭了")
        }



      }else{

        alert("你的浏览器不支持websocket,请更换chrome")
      }



    }

        

(2).后端 tornado

1.导入需要使用的模块:

from tornado.web import url

from functools import wraps


from tornado import websocket

from base import BaseHandler

import json

2.写入视图类:

clients = {}



async def push_message(uid,message):

    

    # 查找发送的对象
    
    if uid in clients:
         print(uid,message)
         clients[uid]["connect"].write_message(message)
    



class BaseWebSocket(websocket.WebSocketHandler):
    def check_origin(self, origin):
        """重写同源检查 解决跨域问题"""
        return True

    # 开启链接
    # 进行校验
    @websocket_jwt
    async def open(self):

        global clients

        # 存储用户链接
        clients[self._cuser.id] = {"connect":self}

        print(clients)
        print("开启链接")

    # 接收消息
    def on_message(self, message):
        print(message)

    # 断开
    @websocket_jwt
    def on_close(self):

        del clients[self.self._cuser.id]
        print("链接断开了")


class PushWebSocket(BaseHandler):

    async def post(self):

        uid = self.get_argument("uid")

        await push_message(int(uid),"这是后端传来的消息")

        self.finish({"errcode":0,'msg':"消息推送成功"})

3.写测试脚本


# token是前端用户的token,已修改,记得用自己的哦
data = {'uid':16,"token":'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTZ9.XvNppt0kbk9YdcWE2eT-OS6DZGiHfYLWWY5Qz_lSCpu'}




if __name__ == '__main__':


    res = requests.post("http://localhost:8000/push/",data=data)
    print(res.text)

4.配置路由文章来源地址https://www.toymoban.com/news/detail-414306.html

# 声明路由
urlpatterns = [
    url('/websocket/', BaseWebSocket),
    url('/push/', PushWebSocket),


]

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

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

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

相关文章

  • Python适配器模式介绍、使用方法

    适配器模式(Adapter Pattern) 是一种结构型设计模式,用于将不兼容的接口转换为另一种接口,以便系统间的协同工作。 功能: 适配器模式主要功能是将一个类的接口转换成客户端所期望的另一种接口,以满足系统间接口的兼容性需求。 优点: 提高了系统的灵活性,使得系统具

    2024年02月15日
    浏览(63)
  • python中的cnn:介绍和基本使用方法

    python中的cnn:介绍和基本使用方法 卷积神经网络(Convolutional Neural Networks,简称CNN)是一种在图像识别、语音识别、自然语言处理等许多领域取得显著成功的深度学习模型。CNN的设计灵感来源于生物的视觉系统,由多个卷积层、池化层和全连接层组成。 在Python中,我们通常使

    2024年02月12日
    浏览(40)
  • python中的svm:介绍和基本使用方法

    python中的svm:介绍和基本使用方法 支持向量机(Support Vector Machine,简称SVM)是一种常用的分类算法,可以用于解决分类和回归问题。SVM通过构建一个超平面,将不同类别的数据分隔开,使得正负样本之间的间隔(也称为边缘)最大化。 在Python中,可以使用scikit-learn库来使用

    2024年02月12日
    浏览(41)
  • python中的lstm:介绍和基本使用方法

    python中的lstm:介绍和基本使用方法 未使用插件 LSTM(Long Short-Term Memory)是一种循环神经网络(RNN)的变体,专门用于处理序列数据。LSTM 可以记忆序列中的长期依赖关系,这使得它非常适合于各种自然语言处理(NLP)和时间序列预测任务。 在 Python 中,你可以使用深度学习框

    2024年02月12日
    浏览(38)
  • chatgpt赋能python:Python的Popen介绍及使用方法

    在Python编程中,我们经常需要执行外部命令并获取结果。而Python中的Popen函数就是一个方便的工具,可以启动另一个进程并与之交互。在本文中,我们将介绍Popen的基础知识以及使用方法。 Popen是Python的subprocess模块提供的一个函数,可以启动一个新进程并与之交互。它的基本

    2024年02月10日
    浏览(49)
  • chatgpt赋能python:python中的iloc:介绍和基本使用方法

    在Python中,Dataframe是数据分析中最常用的数据结构。iloc是Python Pandas库中用于简化数据切片和子集操作的一种方法。 本文将介绍iloc的基础概念和基本使用方法,并且通过实际的示例来演示如何使用iloc来快速选择和操作数据集。 iloc是“integer location”的缩写,意为“整数位置

    2024年02月04日
    浏览(51)
  • Python中os.environ基本介绍及使用方法

    os.environ简介 os.environ 是Python中的一个字典对象,它包含了当前进程的环境变量。通过使用 os.environ ,可以获取和设置环境变量的值。 下面是给给定的Python代码添加注释说明的示例 在上述代码中,我们首先导入了 os 模块,然后使用 os.environ.get() 方法获取名为 PATH 的环境变量的

    2024年04月12日
    浏览(40)
  • chatgpt赋能python:Python的分割函数:split的介绍和使用方法

    在Python编程中,我们经常需要对字符串进行操作。其中,分割字符串是一项常见的任务。Python中的split()函数可以用于将字符串按照指定的分隔符进行拆分。本文将介绍split()函数的使用方法以及注意事项。 split()函数是Python中内置的一个字符串函数,用于将字符串分割成一个字

    2024年02月10日
    浏览(44)
  • 【Python】进阶学习:__len__()方法的使用介绍

    【Python】进阶学习: __len__() 方法的使用介绍 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享更多关于深度学习、PyTorc

    2024年03月14日
    浏览(39)
  • PySerial:Python串口通信库的详细介绍、安装及使用方法攻略

    PySerial:Python串口通信库的详细介绍、安装及使用方法攻略 一、PySerial 简介 PySerial 是 Python 的一个串口通信库,支持不同平台下的串口操作。在 Python 应用中,使用 PySerial 可以非常方便地实现对串口设备的读写操作。 二、PySerial 的安装 在 Windows 平台下,可以通过 pip 命令安装

    2024年02月09日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包