현재 실시간 문서 협업 기능과 채팅 시스템 도입을 진행 중이다.
HTTP 한계상 실시간에는 어울리지 않고, 이를 통한 오버헤드 또한 결국 트래픽 비용이므로
Websocket 활용한 클라이언트-서버 시스템을 구축해야 한다.
Flask 로 진행중이므로 해당 스펙에 맞는 적절한 라이브러리를 찾아야 했다.
SocketIO 가 꽤 인기있는 라이브러리이지만 결론적으로 선택하지 못했다.
SocketIO는 WebSocket + HTTP (polling , long-polling ...) 을 결합한 것으로 WebSocket을 미지원하는 브라우저의 경우 HTTP 로 폴링한다고 한다.
그러나, SocketIO 공식 문서에 보면 다음과 같이 나와있다.
웹소켓을 활용하나 결국엔 SocketIO 만의 추가 메타 데이터가 필요하다고 한다. 물론 이게 어느정도인지는 안써있다.
stackoverflow.com/questions/10112178/differences-between-socket-io-and-websockets
여기 답변에 따르면 한사람이 SocketIO vs Websocket 퍼포먼스를 비교했는데 꽤 차이가 있다.
더불어, 현재 클라이언트인 Flutter 자체에서 Websocket 클라이언트 기능을 지원하고 있다. 이를 활용하는게 github에 누군가 올려놓은 SocketIO For Flutter 보다는 공신력(=안정적)있다.
문제는 SocketIO 서버는 WebSocket 클라이언트를 받지 못한다고한다(위에 사진 4번째 줄 참조).
따라서 직접 Websocket 라이브러리로 서버를 구축하고, Flutter 로 직접 연결하는 수 밖에 없는 것 같다. 20000
'컴퓨터 공학' 카테고리의 다른 글
👉 [Flutter] FCM 사용시, iOS에서 백그라운드 작동이 안될 때 (0) | 2021.05.05 |
---|---|
👉 [CS] Join (0) | 2021.02.14 |
👉 [네트워크] HTTP 는 소켓 통신이에욧 !!! (4) | 2020.09.24 |
👉 [Python] String 값으로 함수 호출하기 (0) | 2019.12.05 |
👉 [Linux] unsupported class file major version 55 해결 방법 (0) | 2019.11.03 |