Comment utiliser WebSocket dans FastAPI pour une communication bidirectionnelle

PHPz
Libérer: 2023-07-29 22:12:22
original
3526 Les gens l'ont consulté

Comment utiliser WebSocket pour la communication bidirectionnelle dans FastAPI

Introduction :
WebSocket est un protocole qui permet une communication bidirectionnelle dans les applications Web. Contrairement au modèle de requête-réponse HTTP traditionnel, WebSocket permet au serveur d'envoyer des messages directement au client sans que ce dernier n'initie explicitement une requête. Dans FastAPI, nous pouvons facilement utiliser WebSocket pour établir une communication bidirectionnelle en temps réel. Cet article explique comment utiliser WebSocket dans FastAPI pour établir une communication bidirectionnelle, avec des exemples de code.

Étape 1 : Installez FastAPI et uvicorn
Tout d'abord, nous devons nous assurer que Python 3.7 ou supérieur est installé. Ensuite, nous pouvons installer FastAPI et uvicorn en utilisant pip :

pip install fastapi uvicorn
Copier après la connexion

Étape 2 : Créer une application FastAPI
Ensuite, nous pouvons créer une application FastAPI. Dans un nouveau fichier .py, ajoutez le code suivant :

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}")
Copier après la connexion

Le code ci-dessus crée une application FastAPI et définit une fonction websocket_endpoint pour gérer les connexions WebSocket. Dans cette fonction, nous appelons d'abord await websocket.accept() pour accepter la connexion WebSocket. Nous utilisons ensuite une boucle infinie pour écouter en permanence les messages envoyés par le client. Une fois le message reçu, nous utilisons await websocket.send_text() pour renvoyer le message de réponse au client. await websocket.accept()来接受WebSocket连接。然后,我们使用一个无限循环来持续监听从客户端发送的消息。一旦接收到消息,我们使用await websocket.send_text()将回复消息发送回客户端。

步骤三:启动应用
我们可以使用uvicorn命令启动FastAPI应用。在终端执行以下命令:

uvicorn main:app --reload
Copier après la connexion

这将启动一个本地服务器,并监听在http://localhost:8000上。

步骤四:测试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连接已关闭');
};
Copier après la connexion

这段代码使用WebSocket的API来建立连接,并监听连接的打开、消息的接收和连接的关闭事件。当连接打开时,发送消息到服务器。当收到服务器的消息时,打印消息内容。当连接关闭时,打印连接关闭的消息。

结论:
通过以上步骤,我们可以在FastAPI中使用WebSocket实现双向通信。我们可以使用FastAPI提供的WebSocket

Étape 3 : Démarrez l'application🎜Nous pouvons utiliser la commande uvicorn pour démarrer l'application FastAPI. Exécutez la commande suivante dans le terminal : 🎜rrreee🎜Cela démarrera un serveur local et écoutera sur http://localhost:8000. 🎜🎜Quatrième étape : tester la connexion WebSocket🎜À l'aide de n'importe quel outil client WebSocket (tel que les outils de développement du navigateur ou Postman), nous pouvons tester la connexion WebSocket. Ouvrez l'outil client WebSocket et établissez une connexion à ws://localhost:8000/ws. 🎜🎜Une fois la connexion établie avec succès, nous pouvons envoyer des messages au serveur. Le serveur répondra au client avec le message reçu. 🎜🎜Exemple de code : 🎜Ce qui suit est un exemple de code utilisant JavaScript pour envoyer et recevoir des messages via une connexion WebSocket : 🎜rrreee🎜Ce code utilise l'API WebSocket pour établir une connexion et écouter l'ouverture de la connexion, la réception des messages et la clôture de l'événement de connexion. Lorsque la connexion est ouverte, envoyez un message au serveur. Lors de la réception d'un message du serveur, imprimez le contenu du message. Lorsque la connexion est fermée, imprimez un message de connexion fermée. 🎜🎜Conclusion : 🎜Grâce aux étapes ci-dessus, nous pouvons utiliser WebSocket dans FastAPI pour établir une communication bidirectionnelle. Nous pouvons utiliser la classe WebSocket fournie par FastAPI pour traiter et gérer les connexions WebSocket afin d'obtenir une communication bidirectionnelle en temps réel. Dans cet article, nous incluons également un exemple de code JavaScript qui montre comment envoyer et recevoir des messages à l'aide d'une connexion WebSocket. J'espère que cet article vous aidera à comprendre et à appliquer la technologie WebSocket. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal