Flask_sock demo

server.py

import time

from flask import Flask, render_template
from flask_sock import Sock

app = Flask(__name__)
sock = Sock(app)

@app.route('/')
def hello():
    return render_template('index.html')


@sock.route('/echo')
def echo(ws):
    while True:
        data = ws.receive()
        print(data)

        ws.send(data)
        time.sleep(1)

if __name__ == "__main__":

    from gevent import monkey

    monkey.patch_all()
    app.run()

index.html

<html>
<head>
    <meta charSet="utf-8"/>
    <title>websocket 測試</title>
    <script src="https://cdn.bootcss.com/jquery/3.2.0/jquery.js">
    </script>
    <script type="text/javascript">
        function WebSocketTest() {
            if ("WebSocket" in window) {
                // alert("您的瀏覽器支持 WebSocket!");
                // 打開一個 web socket
                var ws = new WebSocket("ws://localhost:5000/echo");

                ws.onopen = function () {
                    // Web Socket 已連接上,使用 send() 方法發(fā)送數(shù)據(jù)
                    ws.send("請發(fā)送數(shù)據(jù)");
                    $("#r_s").append("數(shù)據(jù)發(fā)送中...<br>")
                };

                ws.onmessage = function (evt) {
                    var received_msg = evt.data;
                    $("#r_s").append("server says: " + decodeURI(received_msg) + "<br>")
                    ws.send("數(shù)據(jù)已收到。")
                };

                ws.onclose = function () {
                    // 關閉 websocket
                    ws.send("正在關閉連接...")
                    $("#r_s").append("連接已關閉...<br>")
                };
            } else {
                // 瀏覽器不支持 WebSocket
                alert("您的瀏覽器不支持 WebSocket!");
            }
        }
    </script>
</head>
<body>
<div id="sse">
    <a href="javascript:WebSocketTest()">運行 WebSocket</a>
</div>
<div id="r_s">
    操作記錄:
    <br/>
</div>
</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 一、 項目簡介 webrtc是近幾年興起的一種流媒體通信框架。其目的是實現(xiàn)一套web瀏覽器無插件的流媒體框架。它可...
    wonder912閱讀 6,499評論 0 1
  • 安裝: 1.下載PyCharm2.在PyCharm中下載Flask的包 入門程序(官方文檔中) json數(shù)據(jù)傳輸 ...
    小王愛寫B(tài)UG閱讀 1,344評論 0 2
  • 首先項目結(jié)構(gòu)如下: 這個項目是用之前Flask+opencv那個項目改的,所以請無視main.py,server....
    神奇的托爾巴拉德閱讀 294評論 0 0
  • 一個簡單的 CRUD 操作基本可以看出某個開發(fā)框架和平臺的特點。Flask 作為一個微框架,在開發(fā)一些小型應用的時...
    Stone0823閱讀 2,344評論 0 5
  • 一、網(wǎng)站的基本架構(gòu) 1、MVC模式 MVC模式是一個非常好的軟件架構(gòu)模式,在網(wǎng)站開發(fā)中,也常常要求遵守這個模式。 ...
    skyjoy閱讀 1,134評論 0 0

友情鏈接更多精彩內(nèi)容