python實現(xiàn)WebSocket服務端過程解析
一種類似Flask開發(fā)的WebSocket-Server服務端框架,適用python3.X
1、安裝模塊Pywss
pip install pywss
2、搭建簡易服務器
2.1 服務端代碼
代碼簡介
route: 注冊請求路徑
example_1(request, data):
request: socket句柄,能夠發(fā)送和接收數(shù)據(jù)接。發(fā)送數(shù)據(jù)request.ws.send(data),收數(shù)據(jù)request.ws_recv(1024)
data: 客戶端發(fā)送的數(shù)據(jù)存于此處
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): 發(fā)起協(xié)議升級為WebSocket連接請求,ws_url路徑不要寫錯咯,要與服務端中的route()中注冊路徑對應起來
ws.onmessage: 當有數(shù)據(jù)傳遞過來時,會執(zhí)行此函數(shù)
ws.onclose: 當連接斷開時,會執(zhí)行此函數(shù)
ws.onopen: 當連接建立的時候,會執(zhí)行此函數(shù)
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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
解決Python調用df.to_csv()出現(xiàn)中文亂碼的問題
在Python使用df.to_csv()時,若出現(xiàn)中文亂碼,可通過加入?yún)?shù)encoding="utf_8_sig"解決,"utf-8"編碼不包含BOM,直接處理文件時會將BOM誤讀為內容;而"utf_8_sig"會識別并處理BOM,避免亂碼,此方法為實踐經(jīng)驗,供參考2024-09-09
Python連接和操作PostgreSQL數(shù)據(jù)庫的流程步驟
PostgreSQL 是一種開源的對象關系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),以其強大的功能和穩(wěn)定性而廣受歡迎,本文將詳細介紹如何使用 Python 連接和操作 PostgreSQL 數(shù)據(jù)庫,需要的朋友可以參考下2024-10-10

