当前位置:首页 > python > 正文内容

flask的websocket的简单用例

root2年前 (2021-12-27)python511

后端代码

flask Flask, render_template, request
flask_socketio SocketIO, emit

app (__name__, , ,
            , )
app.config[] socketio (app)
socketio.(app, )  //允许跨域
count ()
()()


(, )
()count
    count (,)
    (, {count, []})


(, )
()count
    count (,)
    (, {count,
                         []}, )


(, )
()()
    count
    count (, {count, })


(, )
()()


(, )
()()


__name__ socketio.(app, , , )


前端代码

index.html

<!DOCTYPE >
<>
<>
    <></>
    </>
    </>
    <></>
    <></>
    <></>
</>
<>
<></>

<>
    <><></></>
</>
<></>
<>
    </>
    </>
</>
<>
    </>
    </>
</>
<>
    <></>
    <></>
</>

<></>
<></>
</>
</>

./templates/index.js

$(document).ready(() {
    namespace ;

    socket io(namespace);
    $().click(() {
        socket.connect();
    });
    $().click(() {
        socket.disconnect();
    });
    socket.on(, () {
        alert();
    });
    socket.on(, () {
        socket.emit(, { data});
    });

    socket.on(, (msg, cb) {
        $().append(
            $()
                    .text(msg.count msg.data)
                    .html()
        );
        (cb) cb();
    });

    ping_pong_times [];
    start_time;
    window.setInterval(() {
        start_time Date().getTime();
        socket.emit();
    }, );

    socket.on(, () {
        latency Date().getTime() start_time;
        ping_pong_times.push(latency);
        ping_pong_times ping_pong_times.slice(); sum ;
        (i ; i ping_pong_times.length; i)
            sum ping_pong_times[i];
        $().text(
            Math.round((sum) ping_pong_times.length) );
    });

    $().submit((event) {
        socket.emit(, { data$().val() });
        ;
    });
    $().submit((event) {
        socket.emit(, { data$().val() });
        ;
    });
});

下面是代码

flask-socketio-main.zip

需要注意flask-socketio的版本

按照操作进行就可以了


参考

扫描二维码推送至手机访问。

版权声明:本文由一叶知秋发布,如需转载请注明出处。

本文链接:https://zhiqiu.top/?id=188

分享给朋友:

相关文章

python跟pip不是同一个版本的坑

python执行默认是Python2.7但是pip默认确实pip3的用pip install 安装包只会安装到python3环境里面指回pip vim /usr/local/bin/pip把 第一行的#!/usr/bin...

python 装饰器 之打印函数执行时间

在实际开发中 遇见很多需要排查函数执行时间定位性能瓶颈点用装饰器获取函数执行的时间还是比较方便的import inspect import time def timethis(func):  ...

Python eventlet 模块,Timeout() 控制子程序运行时间

pip install  eventlet #安装依赖包# -*- coding:utf-8 -*- import eventlet import time e...

python 之optparse模块OptionParser

该模块让python脚本命令能够符合标准的Unix命令例程式每个命令行参数就是由参数名字符串和参数属性组成的。如 -f 或者 file 分别是长短参数名当你将所有的命令行参数都定义好了的时候,我们需要调用parse_args()方法赖际熙a...

python 实现AES加密解密

什么是非对称加密1. A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。• 2. A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。• 3. A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。• 4. A...

python logging 模块对多进程的支持

深度解决方案logging 模块 是支持多线程的但是多进程的会出现问题,因为对文件读写会出现资源的争抢如何解决对多进程的出现的问题concurrent-log-handler包 解决问题该模块同样也为python的标准日志记录软件提供了额外...