WebSocket ni teknolojia yenye nguvu ya kuanzisha njia mbili za mawasiliano ya wakati halisi kati ya seva na wateja. Chini ni mwongozo wa jinsi ya kujumuisha WebSocket katika mifumo miwili maarufu, Flask na FastAPI.
Kuunganisha WebSocket ndani Flask
Hatua ya 1: Sakinisha Maktaba
Kwanza, unahitaji kusanikisha flask
na flask-socketio
maktaba kwa kutumia amri ifuatayo:
pip install Flask flask-socketio
Hatua ya 2: Sanidi Programu
Hapa kuna mfano wa jinsi ya kujumuisha WebSocket katika Flask programu:
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
socketio = SocketIO(app)
@app.route('/')
def index():
return render_template('index.html')
@socketio.on('message')
def handle_message(message):
emit('response', {'data': message})
if __name__ == '__main__':
socketio.run(app)
Katika kijisehemu cha msimbo hapo juu, tunatumia flask-socketio
maktaba kuunda WebSocket seva. Kazi handle_message
inaitwa wakati mteja anatuma ujumbe, na seva hujibu kwa kutoa response
tukio.
Kuunganisha WebSocket ndani FastAPI
Hatua ya 1: Sakinisha Maktaba
Sakinisha fastapi
na uvicorn
maktaba kwa kutumia amri ifuatayo:
pip install fastapi uvicorn
Hatua ya 2: Sanidi Programu
Hapa kuna mfano wa jinsi ya kujumuisha WebSocket katika FastAPI programu:
from fastapi import FastAPI, WebSocket
from fastapi.responses import HTMLResponse
app = FastAPI()
@app.get('/')
def get():
return HTMLResponse(content=open("index.html").read())
@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
await websocket.accept()
while True:
data = await websocket.receive_text()
await websocket.send_text(f"Server received: {data}")
Katika kijisehemu cha msimbo hapo juu, tunatumia FastAPI kuunda WebSocket seva. Chaguo websocket_endpoint
za kukokotoa hukubali WebSocket miunganisho, husikiliza data iliyotumwa na wateja, na hujibu kwa kutuma data kwa mteja.
Hitimisho
Kuunganishwa WebSocket katika mifumo maarufu kama Flask na FastAPI kufungua uwezekano wa kuunda programu za wakati halisi na mawasiliano ya pande mbili kati ya seva na wateja.