Socket.IO도 결국은 리프레쉬?? > 자유게시판

자유게시판

Socket.IO도 결국은 리프레쉬?? 정보

Socket.IO도 결국은 리프레쉬??

본문

Socket.IO을 보면 결국 setTimeout를 이용한 비동기식 재귀 호출하는 방식이 아닌가요?

이를 이용한 node.js로 데이터를 받는 역활을 하는것이고요.

 

Socket.IO 소스를 열어본 제 개인적인 생각입니다.

개인적으로 궁금했거든요.

 

추천
0
  • 복사

댓글 7개

Socket.IO 역활이란게 서버와 클라이언트간에 접속이 어떤 형태든 유지되도록 지원해주는 거라..
웹소켓 프로토콜이 지원되는 브러우져는 웹소켓 프로토콜을 이용한 통신
그렇지 않은 브러우져는 롱폴링으로 접속이되록해주는 역활이라 보면됩니다.
네 그렇더라구요.

제가 위와 같은 타이틀을 했던건...
결국 아직까진 html5가 현재 퍼포먼스나 여러가지 측면에서 활용도가 참으로 좋지만
아직까지 지원이 안되는 환경에서 이용하는 사용자도 상당하므로 그 점을 고려하였을 경우에
위와 같은 방법을 사용해서 여러 채팅을 구현한 사이트를 분석해본 결과 결국은 폴링에서
크게 벗어나지 않는 방법을 택하고 있다라는 생각이 들더군요.

하지만 html5는 정말 손쉽게 많은 활용도있는 퍼포먼스를 낼 수 있다라는건 맞는것 같습니다.
평균 80~200명이 접해있는 php 대화방을  1년 정도 리스타트 없이 시범적으로 테스트 운영하고 있거든요.
php 웹소켓 라이브러리를 받아서 일부 수정하여 웹소켓 + 플래시를 이용하여 pc에서는 대부분 문제없이 되는 것 같아요.
근데 말씀하신 것 처럼 지원안되는 환경들이 모바일에서 있더라구요.
삼성 갤럭시3나 노트1도 그렇고 . 소켓만으로 딱 오는 한계더군요. - 갤3는 플래시 설치하니 되더군요.
그러다보니 Socket.IO 가 참으로 물건이러라구요(테스트만 해봤어요).
요즘 홈페이지들도 IE9 이상을 요구하는 곳들도 점차 늘어나는 걸 보면
Socket.IO도 웹소켓만으로 작동하는 날이 오면 고민 할 일 없어지겠죠 ㅎ
그렇군요..근데 php 웹소켓으로 80~200명 정도의 운영이 가능하다는게 신기하긴 하군요.
아마 그 이상도 가능할지도 모르겠네요...전 해본적이 없어서 말이죠~~~~~;;;;
괜찮으시다면 사이트 구경도 함 시켜주세요^^
Socket.IO는 상황에 맞는 다양한 방법을 통해 WebSocket을 시뮬레이션합니다.
모바일에선 대부분 그냥 웹소켓을 바로 쓸 수 있고, IE 옛날 버전의 경우엔 플래시로 돌아갈 가능성이 가장 큽니다.
http://caniuse.com/#search=websockets

Socket.IO는 웹소켓보다 상위 레벨이고, 좀더 로우레벨 웹소켓과 같은 걸 원하시면 SockJS를 쓸 수도 있습니다.
http://sockjs.org/
저도 말씀해주신 사항에대해 동감합니다.

socket.io node.js를 활용하여 채팅을 구현하고자할때와 기존 사용되고 있는 소스를 뜯어보면
순서가 웹소켓,플래시,xhr폴링,제이슨 이렇게 되더군요

아직까진 웹소켓이 표준이 아니지만 위와 같이 순서로 로드되어 사용되게 한다라는건 그만한 이유가 있다고 봅니다.
아무튼 제 생각에도 말씀하신 바와 같이 웹 하위 버젼 데스크탑에서는 플래시 사용이 가장크고

모바일에서는 폴링을 사용할 가능성이 높다고 봅니다.
저는 socket.io node.js를 이용하여 만들어본적은 없지만 어디까지나 소스 뜯어보고 분석을 해본 제 생각입니다

그리고 말씀해주신 SockJs도 보왔는데 폴링 방식이더라구요.
모두 websocket이 최우선이고, polling은 대체 수단으로 쓰는 겁니다.

SockJS 설명을 보시면 “Polling transports are used as a fallback for old browsers and hosts behind restrictive proxies.”라고 명시적으로 나와있죠.
© SIRSOFT
현재 페이지 제일 처음으로