FastAPI で WebSocket を使用して双方向通信を行う方法

PHPz
リリース: 2023-07-29 22:12:22
オリジナル
3542 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート