天天看點

python websocket 有多快啟動服務socket伺服器 sample_server.py前端頁面 index.html效果圖連結挺可靠,10分鐘沒斷過平均每秒 10000 QOS 吞吐django http 不做優化好像 1000 不到

文章目錄

  • 啟動服務
    • 啟動 socket 伺服器
    • 啟動 頁面伺服器
  • socket伺服器 sample_server.py
  • 前端頁面 index.html
  • 效果圖
  • 連結挺可靠,10分鐘沒斷過
  • 平均每秒 10000 QOS 吞吐
  • django http 不做優化好像 1000 不到

啟動服務

啟動 socket 伺服器

cd $project_root
python3 sample_server.py
           

啟動 頁面伺服器

cd $project_root
python3 -m http.server
           

通路 127.0.0.1:8000

socket伺服器 sample_server.py

import asyncio
import datetime
import random
import websockets


async def clock(websocket, path):
    c = 0
    while True:
        now = datetime.datetime.utcnow().isoformat() + "Z" + \
            "<br/> 已請求 {} 次 ".format(c)
        await websocket.send(now)
        c += 1

if __name__ == "__main__":
    start_server = websockets.serve(clock, "0.0.0.0", 8765)
    asyncio.get_event_loop().run_until_complete(start_server)
    asyncio.get_event_loop().run_forever()

           

前端頁面 index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    .fill_all {
        width: 100%;
        height: calc(100vh);
        font-size: 10vh;
    }
</style>

<body>

    <div class="fill_all" style="display: flex;justify-content: center; align-items: center;"></div>



</body>
<script type="text/javascript">

    window.onload = () => {
        let sec = 1;
        setInterval(() => { sec += 1; }, 1000)
        const socket = new WebSocket('ws://127.0.0.1:8765');

        // Connection opened
        socket.addEventListener('open', function (event) {
            socket.send('Hello Server!');
        });

        // Listen for messages
        socket.addEventListener('message', function (event) {
            let divs = document.getElementsByTagName("div");
            divs[0].innerHTML = "websocket 很快啊, clock" + "<br/>" + event.data + "<br/>" + sec + "s内";
            console.log('Message from server ', event.data);
        });
    };

</script>

</html>
           

效果圖

python websocket 有多快啟動服務socket伺服器 sample_server.py前端頁面 index.html效果圖連結挺可靠,10分鐘沒斷過平均每秒 10000 QOS 吞吐django http 不做優化好像 1000 不到

連結挺可靠,10分鐘沒斷過

平均每秒 10000 QOS 吞吐

django http 不做優化好像 1000 不到