클라이언트와 서버 간 양방향 실시간 통신을 가능하게 하는 프로토콜
HTTP와 달리 한 번 연결되면 꼐속 데이터를 주고 받을 수 있음
pip install websocket-client
import websocket
import rel
def on_message(ws, message):
print(f"받은 메시지: {message}")
def on_error(ws, error):
print(f"에러 발생: {error}")
def on_close(ws, close_status_code, close_msg):
print("연결 종료")
def on_open(ws):
print("연결 성공")
ws.send("Hello, WebSocket!")
ws = websocket.WebSocketApp(
"wss://example.com/socket",
on_message=on_message,
on_error=on_error,
on_close=on_close
)
ws.on_open = on_open
ws.run_forever(dispatcher=rel, reconnect=5, ping_interval=60)
rel.signal(2, rel.abort) # Ctrl+C로 종료
rel.dispatch()
상세보기
ws.run_forever(dispatcher=rel, reconnect=5, ping_interval=60)
rel.signal(2, rel.abort) # Keyboard Interrupt
rel.dispatch()
ws.run_forever(dispatcher=rel, reconnect=5, ping_interval=60)connect=5: 연결이 끊어지면 5초 후 재연ㅇ결ping_interval=60: 60초마다 핑(ping) 메시지를 보내서 연결을 유지.rel.signal(2, rel.abort)rel.dispatch()추가
run_forever() 대신 ws.run_forever(ping_interval=30, reconnect=10)과 같이 직접 설정 가능reconnect를 설정하지 않으면 연결이 끊어졌을 때 자동으로 다시 연결되지 않음ping_interval이 너무 길면 서버가 연결이 끊어졌다고 판단할 수 있음