WebSocket は、サーバーとクライアントの間で双方向のリアルタイム通信チャネルを確立するための強力なテクノロジです。 以下は、2 つの一般的なフレームワークと WebSocket に 統合する方法に関するガイドです 。 Flask FastAPI
WebSocket に 統合する Flask
ステップ 1: ライブラリをインストールする
まず、次のコマンドを使用して flask
とライブラリ をインストールする必要があります。 flask-socketio
pip install Flask flask-socketio
ステップ 2: アプリケーションをセットアップする
WebSocket アプリケーションに 統合する方法の例を次に示します Flask。
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)
上記のコード スニペットでは、 flask-socketio
ライブラリを使用してサーバーを作成します WebSocket。 この handle_message
関数は、クライアントがメッセージを送信すると呼び出され、サーバーはイベントを発行して応答します response
。
WebSocket に 統合する FastAPI
ステップ 1: ライブラリをインストールする
次のコマンドを使用して、 fastapi
およびライブラリ をインストールします。 uvicorn
pip install fastapi uvicorn
ステップ 2: アプリケーションをセットアップする
WebSocket アプリケーションに 統合する方法の例を次に示します FastAPI。
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}")
上記のコード スニペットでは、サーバーを FastAPI 作成するためにを使用しています WebSocket。 この websocket_endpoint
関数は接続を受け入れ WebSocket 、クライアントから送信されたデータをリッスンし、クライアントにデータを送り返すことで応答します。
結論
WebSocket や などの一般的なフレームワークに 統合する Flask と、 FastAPI リアルタイム アプリケーションやサーバーとクライアント間の双方向通信を作成する可能性が広がります。