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

flask的websocket的简单用例

root4年前 (2021-12-27)python1010

后端代码

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

分享给朋友:

相关文章

Popen 使用注意(python)

Popen 的构造函数可以尝试指定一下 close_fds = True意思是不继承主线程的上下文件因为Popen在启动一个进程时容易出现僵尸进程,当主进程死亡时可能会继承主进程的上下文资源...

自定义logger 模块使调用打印日志的文件为调用文件而不是logger模块

更新logging 源码1248行f f f.f_back替换为f f f.f_back     f_2 f.f_back   ...

selenium控制webdriver  设置请求头。只能设置简单的。自定义和固定的格式无法修改成功

selenium控制webdriver 设置请求头。只能设置简单的。自定义和固定的格式无法修改成功

time selenium webdriver options webdriver.() options.() options.( options.() browser webdriver....

pip 升级到指定版本,但是py2的pip版本务必在20版本以内包含20版本

python3 -m pip install --user --upgrade pip==9.0.3(换成你想要的版本编号)如果python2的只能升级到20+版本。超过会出现不支持的情况...

cmd启动python交互模式 出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x9a in position 533

这是因为在python交互模式的中输出了中文,且是个输出被记录在.python_history中删除历史记录文件C:\Users\Administrator\.python_history...

获取大文件的MD5值

(, )os.path.(, )logger.()         os.path.(, )logger.()  &...