当前位置: 首页 > 工具软件 > dwebsocket > 使用案例 >

Django 学习笔记 (二)dwebsocket

狄飞尘
2023-12-01

dwebsocket  一次连接,就可以直接发送,不需要多次请求 

安装

        通过pip安装有问题。可直接下载git版,将websocket文件复制到项目中。

使用代码解释

    *django中(服务端) 独立url数据通信


        request.is_websocket() 判断消失是否是websocket请求,True
        request.websocket.send() 发送信息,内容只能为字符串或json字符串
        request.websocket 从客户端接收到信息的数组


    *js中(客户端)
        导包

            <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>

        script代码
        var socket = new WebSocket("ws://" + window.location.host + "/url");    创建连接对象和地址
        socket.onopen = function () {    //打开连接,并执行函数
                console.log('WebSocket open');//成功连接上Websocket //控制台打印信息
            };
        
        socket.onmessage = function (e) {    //接收信息,并将信息存放e中
                console.log('message: ' + e.data);//打印出服务端返回过来的数据 //控制台打印信息
                $('#messagecontainer').prepend('<p>' + e.data + '</p>');  //数据在前端的操作
            };
        
        if (socket.readyState == WebSocket.OPEN) socket.onopen();  //如果已经创建对象,则直接打开
        

        功能  对象创建成功后,可直接使用以下功能
        1.request.is_websocket()
        如果是个websocket请求返回True,如果是个普通的http请求返回False,可以用这个方法区分它们。

        2.request.websocket
        在一个websocket请求建立之后,这个请求将会有一个websocket属性,用来给客户端提供一个简单的api通讯,如果request.is_websocket()是False,这个属性将是None。

        3.WebSocket.wait()
        返回一个客户端发送的信息,在客户端关闭连接之前他不会返回任何值,这种情况下,方法将返回None
        
        4.WebSocket.read()
         如果没有从客户端接收到新的消息,read方法会返回一个新的消息,如果没有,就不返回。这是一个替代wait的非阻塞方法

        5.WebSocket.count_messages()
         返回消息队列数量

        6.WebSocket.has_messages()
         如果有新消息返回True,否则返回False

        7.WebSocket.send(message)
         向客户端发送消息

 

学习参考网站:

        https://blog.csdn.net/a649344475/article/details/81234825

        https://blog.csdn.net/xianailili/article/details/82180114

 类似资料: