と WebSocket の 統合 Flask FastAPI

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 リアルタイム アプリケーションやサーバーとクライアント間の双方向通信を作成する可能性が広がります。