python websocket服務


WebSocket 是一個標准化協議,構建在 TCP 之上,能夠在客戶端和服務端之間建立一個全雙工的通信渠道。這里的客戶端和服務端通常是用戶瀏覽器和 Web 服務器。在 WebSocket 誕生之前,如果我們想保持這樣的一個長連接,就需要使用諸如長輪詢、永久幀、Comet 等技術。而現今 WebSocket 已經得到了所有主流瀏覽器的支持,我們可以使用它開發出在線聊天室、游戲、實時儀表盤等軟件。

安裝websockets第三發庫

pip install websockets
pip install asyncio
 

實現websocket服務端服務

import asyncio
import websockets
@asyncio.coroutine
def echo(websocket, path):
message = yield from websocket.recv()
print('recv', message)
server_data = "收到服務端的數據"
yield from websocket.send(server_data)
start_server = websockets.serve(echo, 'localhost', 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
實現websocket客戶端服務

編寫一個index.js文件,具體代碼如下:

var ws = new WebSocket("ws://localhost:8765/echo")
//建立web socket 連接成功觸發事件
ws.onopen = function () {
ws.send("客戶端發送的數據")
console.log("數據發送中....")
};
//接收 web socket 服務端數據時觸發事件
ws.onmessage = function (evt) {
var received_msg = evt.data
console.log(received_msg)
};
//斷開web socket 連接成功觸發事件
ws.onclose = function () {
console.log("連接已斷開")
};
編寫一個index.html文件,引入上面編寫的js文件,來測試一下websocket的功能。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>websocket</title>
</head>
<body>
<script src="./index.js"></script>
</body>
</html>
在瀏覽器打開index.html文件,打開調試窗口,刷新頁面。可以看到websocket客戶端與服務端各自輸出的日志。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM