728x90
웹 소켓이란?
- 본래 서버와 클라이언트가 통신하기 위해서는 HTTP 통신을 통해 클라이언트의 요청과 서버의 응답 형식으로 통신이 이루어진다.
- HTTP 통신은 무조건 클라이언트의 요청이 있어야 서버에서 데이터를 송신할 수 있는데, 이 과정이 이루어지고 나면 클라이언트와 서버 간의 연결이 종료된다.
- 이를 개선하여 클라이언트와 서버의 연결을 유지하면서 서로 원할 때마다 데이터를 송수신 하기 위해 등장한 것이 웹 소켓이다.
1. SocketIO 라이브러리 설치
pip install flask-socketio
- 에디터 터미널에 입력해준다.
2. 해당 라이브러리 임포트
from flask_socketio import SocketIO
3. Flask 서버에 웹 소켓 서버 적용
app = Flask(__name__)
socketio = SocketIO(app)
- 변수로 생성한 Flask 객체를 SocketIO 생성자에 삽입하여 웹 소켓 서버로 적용한다.
4. 서버 실행
socketio.run(app, port=5000, debug=True)
- 기존 Flask 서버를 실행할 때는 app.run() 함수를 실행시켰지만, 웹소켓을 적용한 서버를 실행할 때는 socketio.run() 함수를 실행한다.
5. 데이터를 송수신하는 방법
socketio.emit('sendEventName', data) # 데이터 송신
@socketio.on('receiveEventName') # 데이터 수신
def handle_message(data):
print('받은 데이터: {}'.format(data))
- 클라이언트와 데이터를 송수신하기 위해서는 각 작업이 이루어지는 이벤트 이름을 클라이언트와 통일한다.
- 첫 번째 파라미터에는 그에 해당하는 이벤트 이름을 적고, 두 번째 파라미터에는 보내거나 받는 데이터가 사용된다.
728x90
'Python > Flask' 카테고리의 다른 글
[Flask] Flask 서버를 이용한 카메라 웹 스트리밍 (0) | 2024.02.01 |
---|