Mengintegrasikan WebSocket ke dalam Flask dan FastAPI

WebSocket adalah teknologi yang kuat untuk membangun saluran komunikasi real-time dua arah antara server dan klien. Di bawah ini adalah panduan tentang cara mengintegrasikan WebSocket ke dalam dua kerangka kerja populer, Flask dan FastAPI.

Mengintegrasikan WebSocket ke dalam Flask

Langkah 1: Instal Perpustakaan

Pertama, Anda perlu menginstal flask dan flask-socketio perpustakaan menggunakan perintah berikut:

pip install Flask flask-socketio

Langkah 2: Siapkan Aplikasi

Berikut ini contoh cara mengintegrasikan WebSocket ke dalam Flask aplikasi:

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)  

Pada potongan kode di atas, kita menggunakan flask-socketio library untuk membuat WebSocket server. Fungsi handle_message dipanggil ketika klien mengirim pesan, dan server merespons dengan memancarkan suatu response peristiwa.

Mengintegrasikan WebSocket ke dalam FastAPI

Langkah 1: Instal Perpustakaan

Instal fastapi dan uvicorn perpustakaan menggunakan perintah berikut:

pip install fastapi uvicorn

Langkah 2: Siapkan Aplikasi

Berikut ini contoh cara mengintegrasikan WebSocket ke dalam FastAPI aplikasi:

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}")

Pada potongan kode diatas kita gunakan FastAPI untuk membuat WebSocket server. Fungsi websocket_endpoint menerima WebSocket koneksi, mendengarkan data yang dikirim oleh klien, dan merespons dengan mengirimkan data kembali ke klien.

Kesimpulan

Mengintegrasikan WebSocket ke dalam kerangka kerja populer seperti Flask dan FastAPI membuka kemungkinan untuk membuat aplikasi waktu nyata dan komunikasi dua arah antara server dan klien.