python實現WebSocket服務端過程解析
阿新 • • 發佈:2020-01-09
一種類似Flask開發的WebSocket-Server服務端框架,適用python3.X
1、安裝模組Pywss
pip install pywss
2、搭建簡易伺服器
2.1 服務端程式碼
程式碼簡介
route: 註冊請求路徑
example_1(request,data):
request: socket控制代碼,能夠傳送和接收資料接。傳送資料request.ws.send(data),收資料request.ws_recv(1024)
data: 客戶端傳送的資料存於此處
from pywss import Pyws,route @route('/test/example/1') def example_1(request,data): return data + ' - data from pywss' if __name__ == '__main__': ws = Pyws(__name__,address='127.0.0.1',port=8866) ws.serve_forever()
2.2 客戶端程式碼
客戶端程式碼,建議直接在瀏覽器中執行,eg: Chorme開啟新標籤 -> F12 -> console
程式碼簡介
WebSocket(ws_url): 發起協議升級為WebSocket連線請求,ws_url路徑不要寫錯咯,要與服務端中的route()中註冊路徑對應起來
ws.onmessage: 當有資料傳遞過來時,會執行此函式
ws.onclose: 當連線斷開時,會執行此函式
ws.onopen: 當連線建立的時候,會執行此函式
ws = new WebSocket("ws://127.0.0.1:8866/test/example/1"); ws.onmessage = function (ev) { console.log(JSON.parse(ev.data)); } ws.onclose = function (ev) { console.log('Connect Closed') } ws.onopen = function() { if (ws.readyState === WebSocket.OPEN) { ws.send('hello,pywss!') // you will get 'hello,pywss! - data from pywss' } }
執行截圖:
服務端:
客戶端:
github中還有5個例子,專案地址: https://github.com/CzaOrz/Pywss
如果覺得還不錯,不妨give me start~鼓勵下這個小碼農QAQ
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。