1. 程式人生 > 程式設計 >python實現WebSocket服務端過程解析

python實現WebSocket服務端過程解析

一種類似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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。