FastAPI で双方向通信に WebSocket を使用する方法
はじめに:
WebSocket は、Web アプリケーションで双方向通信を可能にするプロトコルです。従来の HTTP リクエスト/レスポンス モデルとは異なり、WebSocket を使用すると、クライアントが明示的にリクエストを開始しなくても、サーバーがクライアントにメッセージを直接送信できます。 FastAPI では、WebSocket を使用してリアルタイムの双方向通信を簡単に実現できます。この記事では、FastAPI で WebSocket を使用して双方向通信を実現する方法をコード例とともに紹介します。
ステップ 1: FastAPI と uvicorn をインストールする
まず、Python 3.7 以降がインストールされていることを確認する必要があります。次に、pip を使用して FastAPI と uvicorn をインストールします。
pip install fastapi uvicorn
ステップ 2: FastAPI アプリケーションを作成する
次に、FastAPI アプリケーションを作成します。新しい .py ファイルに、次のコードを追加します。
from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket("/ws") async def websocket_endpoint(websocket: WebSocket): await websocket.accept() while True: data = await websocket.receive_text() await websocket.send_text(f"Message received: {data}")
上記のコードは、FastAPI アプリケーションを作成し、WebSocket 接続を処理する websocket_endpoint 関数を定義します。この関数では、まず await websocket.accept()
を呼び出して、WebSocket 接続を受け入れます。次に、無限ループを使用して、クライアントから送信されるメッセージを継続的にリッスンします。メッセージを受信したら、await websocket.send_text()
を使用して、応答メッセージをクライアントに送り返します。
ステップ 3: アプリケーションの開始
uvicorn コマンドを使用して FastAPI アプリケーションを開始できます。ターミナルで次のコマンドを実行します。
uvicorn main:app --reload
これにより、ローカル サーバーが起動し、http://localhost:8000
でリッスンします。
ステップ 4: WebSocket 接続をテストする
WebSocket クライアント ツール (ブラウザの開発者ツールや Postman など) を使用して、WebSocket 接続をテストできます。 WebSocket クライアント ツールを開き、ws://localhost:8000/ws
への接続を確立します。
接続が正常に確立されたら、サーバーにメッセージを送信できます。サーバーは受信したメッセージをクライアントに返信します。
コード例:
次は、JavaScript を使用して WebSocket 接続を通じてメッセージを送受信するコード例です:
const socket = new WebSocket('ws://localhost:8000/ws'); socket.onopen = () => { console.log('WebSocket连接已建立'); socket.send('Hello, server!'); }; socket.onmessage = (event) => { console.log('收到服务器的消息:', event.data); }; socket.onclose = () => { console.log('WebSocket连接已关闭'); };
このコードは、WebSocket API を使用して接続を確立し、メッセージをリッスンします。接続 開始イベント、メッセージ受信イベント、および接続終了イベント。接続が開かれたら、サーバーにメッセージを送信します。サーバーからメッセージを受信したら、メッセージの内容を出力します。接続が閉じられると、接続が閉じられたメッセージを出力します。
結論:
上記の手順により、FastAPI で WebSocket を使用して双方向通信を実現できます。 FastAPI が提供する WebSocket
クラスを使用して WebSocket 接続を処理および管理し、リアルタイムの双方向通信を実現できます。この記事には、WebSocket 接続を使用してメッセージを送受信する方法を示す JavaScript コードの例も含まれています。この記事が WebSocket テクノロジーの理解と応用に役立つことを願っています。
以上がFastAPI で WebSocket を使用して双方向通信を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。