[python] 파이썬 웹앱에서 실시간 채팅 기능 추가하기

웹앱에 실시간 채팅 기능을 추가하려면 웹소켓(WebSocket)을 사용할 수 있습니다. 웹소켓은 사용자들 간에 양방향 통신을 가능하게 하는 기술로, 실시간 채팅과 같은 기능을 구현할 때 매우 유용합니다.

필수 라이브러리 설치

먼저, Flask-SocketIO를 사용하여 실시간 통신 기능을 간단하게 추가할 수 있습니다. 이를 위해 먼저 필요한 라이브러리를 설치합니다.

pip install flask-socketio

Flask 앱에 SocketIO 통합

다음으로, Flask 앱에 SocketIO를 통합해야 합니다. 이를 위해 다음과 같이 코드를 추가할 수 있습니다.

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('chat_message')
def handle_message(message):
    emit('receive_message', message, broadcast=True)

if __name__ == '__main__':
    socketio.run(app)

클라이언트 측 코드

마지막으로, 클라이언트 측 코드를 작성하여 실시간으로 메시지를 보낼 수 있도록 해야 합니다. 다음은 간단한 예제입니다.

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.3.2/socket.io.js"></script>
<script>
    var socket = io.connect('http://' + document.domain + ':' + location.port);
    socket.on('connect', function() {
        socket.emit('chat_message', {data: 'Connected'});
    });
    socket.on('receive_message', function(msg) {
        // 받은 메시지를 처리하는 코드
    });
</script>

마무리

이제 위의 단계를 따라 실시간 채팅 기능을 추가했다면, 웹앱을 시작하고 브라우저를 통해 접속하여 테스트해볼 수 있을 것입니다. 실시간으로 여러 사용자들과 채팅하는 즐거움을 경험해보세요!

참고 자료