>  기사  >  백엔드 개발  >  양방향 통신을 위해 FastAPI에서 WebSocket을 사용하는 방법

양방향 통신을 위해 FastAPI에서 WebSocket을 사용하는 방법

PHPz
PHPz원래의
2023-07-29 22:12:223550검색

FastAPI에서 양방향 통신을 위해 WebSocket을 사용하는 방법

소개:
WebSocket은 웹 애플리케이션에서 양방향 통신을 가능하게 하는 프로토콜입니다. 전통적인 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()를 사용하여 응답 메시지를 클라이언트에 다시 보냅니다. await websocket.accept()来接受WebSocket连接。然后,我们使用一个无限循环来持续监听从客户端发送的消息。一旦接收到消息,我们使用await websocket.send_text()将回复消息发送回客户端。

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

uvicorn main:app --reload

这将启动一个本地服务器,并监听在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连接已关闭');
};

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

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

3단계: 애플리케이션 시작🎜 uvicorn 명령을 사용하여 FastAPI 애플리케이션을 시작할 수 있습니다. 터미널에서 다음 명령을 실행하세요: 🎜rrreee🎜이렇게 하면 로컬 서버가 시작되고 http://localhost:8000에서 수신됩니다. 🎜🎜4단계: WebSocket 연결 테스트🎜 WebSocket 클라이언트 도구(예: 브라우저의 개발자 도구 또는 Postman)를 사용하여 WebSocket 연결을 테스트할 수 있습니다. WebSocket 클라이언트 도구를 열고 ws://localhost:8000/ws에 대한 연결을 설정합니다. 🎜🎜연결이 성공적으로 이루어지면 서버에 메시지를 보낼 수 있습니다. 서버는 수신된 메시지로 클라이언트에 응답합니다. 🎜🎜코드 예: 🎜다음은 JavaScript를 사용하여 WebSocket 연결을 통해 메시지를 보내고 받는 코드 예입니다. 🎜rrreee🎜이 코드는 WebSocket API를 사용하여 연결을 설정하고 연결 열기, 메시지 수신을 수신합니다. 그리고 연결 이벤트가 종료됩니다. 연결이 열리면 서버에 메시지를 보냅니다. 서버로부터 메시지를 받으면 메시지 내용을 인쇄합니다. 연결이 종료되면 연결 종료 메시지를 인쇄합니다. 🎜🎜결론: 🎜위 단계를 통해 FastAPI에서 WebSocket을 사용하여 양방향 통신을 구현할 수 있습니다. FastAPI에서 제공하는 WebSocket 클래스를 사용하여 WebSocket 연결을 처리하고 관리하여 실시간 양방향 통신을 달성할 수 있습니다. 이 문서에는 WebSocket 연결을 사용하여 메시지를 보내고 받는 방법을 보여주는 JavaScript 코드 예제도 포함되어 있습니다. 이 글이 WebSocket 기술을 이해하고 적용하는 데 도움이 되기를 바랍니다. 🎜

위 내용은 양방향 통신을 위해 FastAPI에서 WebSocket을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.