Socket.IO도 결국은 리프레쉬??
Socket.IO을 보면 결국 setTimeout를 이용한 비동기식 재귀 호출하는 방식이 아닌가요?
이를 이용한 node.js로 데이터를 받는 역활을 하는것이고요.
Socket.IO 소스를 열어본 제 개인적인 생각입니다.
개인적으로 궁금했거든요.
댓글 7개
11년 전
Socket.IO 역활이란게 서버와 클라이언트간에 접속이 어떤 형태든 유지되도록 지원해주는 거라..
웹소켓 프로토콜이 지원되는 브러우져는 웹소켓 프로토콜을 이용한 통신
그렇지 않은 브러우져는 롱폴링으로 접속이되록해주는 역활이라 보면됩니다.
웹소켓 프로토콜이 지원되는 브러우져는 웹소켓 프로토콜을 이용한 통신
그렇지 않은 브러우져는 롱폴링으로 접속이되록해주는 역활이라 보면됩니다.
senseme
11년 전
네 그렇더라구요.
제가 위와 같은 타이틀을 했던건...
결국 아직까진 html5가 현재 퍼포먼스나 여러가지 측면에서 활용도가 참으로 좋지만
아직까지 지원이 안되는 환경에서 이용하는 사용자도 상당하므로 그 점을 고려하였을 경우에
위와 같은 방법을 사용해서 여러 채팅을 구현한 사이트를 분석해본 결과 결국은 폴링에서
크게 벗어나지 않는 방법을 택하고 있다라는 생각이 들더군요.
하지만 html5는 정말 손쉽게 많은 활용도있는 퍼포먼스를 낼 수 있다라는건 맞는것 같습니다.
제가 위와 같은 타이틀을 했던건...
결국 아직까진 html5가 현재 퍼포먼스나 여러가지 측면에서 활용도가 참으로 좋지만
아직까지 지원이 안되는 환경에서 이용하는 사용자도 상당하므로 그 점을 고려하였을 경우에
위와 같은 방법을 사용해서 여러 채팅을 구현한 사이트를 분석해본 결과 결국은 폴링에서
크게 벗어나지 않는 방법을 택하고 있다라는 생각이 들더군요.
하지만 html5는 정말 손쉽게 많은 활용도있는 퍼포먼스를 낼 수 있다라는건 맞는것 같습니다.
11년 전
평균 80~200명이 접해있는 php 대화방을 1년 정도 리스타트 없이 시범적으로 테스트 운영하고 있거든요.
php 웹소켓 라이브러리를 받아서 일부 수정하여 웹소켓 + 플래시를 이용하여 pc에서는 대부분 문제없이 되는 것 같아요.
근데 말씀하신 것 처럼 지원안되는 환경들이 모바일에서 있더라구요.
삼성 갤럭시3나 노트1도 그렇고 . 소켓만으로 딱 오는 한계더군요. - 갤3는 플래시 설치하니 되더군요.
그러다보니 Socket.IO 가 참으로 물건이러라구요(테스트만 해봤어요).
요즘 홈페이지들도 IE9 이상을 요구하는 곳들도 점차 늘어나는 걸 보면
Socket.IO도 웹소켓만으로 작동하는 날이 오면 고민 할 일 없어지겠죠 ㅎ
php 웹소켓 라이브러리를 받아서 일부 수정하여 웹소켓 + 플래시를 이용하여 pc에서는 대부분 문제없이 되는 것 같아요.
근데 말씀하신 것 처럼 지원안되는 환경들이 모바일에서 있더라구요.
삼성 갤럭시3나 노트1도 그렇고 . 소켓만으로 딱 오는 한계더군요. - 갤3는 플래시 설치하니 되더군요.
그러다보니 Socket.IO 가 참으로 물건이러라구요(테스트만 해봤어요).
요즘 홈페이지들도 IE9 이상을 요구하는 곳들도 점차 늘어나는 걸 보면
Socket.IO도 웹소켓만으로 작동하는 날이 오면 고민 할 일 없어지겠죠 ㅎ
senseme
11년 전
그렇군요..근데 php 웹소켓으로 80~200명 정도의 운영이 가능하다는게 신기하긴 하군요.
아마 그 이상도 가능할지도 모르겠네요...전 해본적이 없어서 말이죠~~~~~;;;;
괜찮으시다면 사이트 구경도 함 시켜주세요^^
아마 그 이상도 가능할지도 모르겠네요...전 해본적이 없어서 말이죠~~~~~;;;;
괜찮으시다면 사이트 구경도 함 시켜주세요^^
11년 전
Socket.IO는 상황에 맞는 다양한 방법을 통해 WebSocket을 시뮬레이션합니다.
모바일에선 대부분 그냥 웹소켓을 바로 쓸 수 있고, IE 옛날 버전의 경우엔 플래시로 돌아갈 가능성이 가장 큽니다.
http://caniuse.com/#search=websockets
Socket.IO는 웹소켓보다 상위 레벨이고, 좀더 로우레벨 웹소켓과 같은 걸 원하시면 SockJS를 쓸 수도 있습니다.
http://sockjs.org/
모바일에선 대부분 그냥 웹소켓을 바로 쓸 수 있고, IE 옛날 버전의 경우엔 플래시로 돌아갈 가능성이 가장 큽니다.
http://caniuse.com/#search=websockets
Socket.IO는 웹소켓보다 상위 레벨이고, 좀더 로우레벨 웹소켓과 같은 걸 원하시면 SockJS를 쓸 수도 있습니다.
http://sockjs.org/
senseme
11년 전
저도 말씀해주신 사항에대해 동감합니다.
socket.io node.js를 활용하여 채팅을 구현하고자할때와 기존 사용되고 있는 소스를 뜯어보면
순서가 웹소켓,플래시,xhr폴링,제이슨 이렇게 되더군요
아직까진 웹소켓이 표준이 아니지만 위와 같이 순서로 로드되어 사용되게 한다라는건 그만한 이유가 있다고 봅니다.
아무튼 제 생각에도 말씀하신 바와 같이 웹 하위 버젼 데스크탑에서는 플래시 사용이 가장크고
모바일에서는 폴링을 사용할 가능성이 높다고 봅니다.
저는 socket.io node.js를 이용하여 만들어본적은 없지만 어디까지나 소스 뜯어보고 분석을 해본 제 생각입니다
그리고 말씀해주신 SockJs도 보왔는데 폴링 방식이더라구요.
socket.io node.js를 활용하여 채팅을 구현하고자할때와 기존 사용되고 있는 소스를 뜯어보면
순서가 웹소켓,플래시,xhr폴링,제이슨 이렇게 되더군요
아직까진 웹소켓이 표준이 아니지만 위와 같이 순서로 로드되어 사용되게 한다라는건 그만한 이유가 있다고 봅니다.
아무튼 제 생각에도 말씀하신 바와 같이 웹 하위 버젼 데스크탑에서는 플래시 사용이 가장크고
모바일에서는 폴링을 사용할 가능성이 높다고 봅니다.
저는 socket.io node.js를 이용하여 만들어본적은 없지만 어디까지나 소스 뜯어보고 분석을 해본 제 생각입니다
그리고 말씀해주신 SockJs도 보왔는데 폴링 방식이더라구요.
11년 전
모두 websocket이 최우선이고, polling은 대체 수단으로 쓰는 겁니다.
SockJS 설명을 보시면 “Polling transports are used as a fallback for old browsers and hosts behind restrictive proxies.”라고 명시적으로 나와있죠.
SockJS 설명을 보시면 “Polling transports are used as a fallback for old browsers and hosts behind restrictive proxies.”라고 명시적으로 나와있죠.
게시글 목록
| 번호 | 제목 |
|---|---|
| 8265 | |
| 20403 | |
| 20402 | |
| 20401 | |
| 20400 |
웹서버
서버 동시접속자 설정 변경하기
|
| 8259 | |
| 20399 | |
| 20398 | |
| 8255 | |
| 8249 | |
| 8246 | |
| 8242 | |
| 20396 | |
| 8240 | |
| 20395 | |
| 20394 |
MySQL
테이블 복사 쿼리
|
| 31033 | |
| 28385 | |
| 20393 |
PHP
현재 접속중인 사용자 나타내기
|
| 28380 | |
| 20392 |
MySQL
mysql select 후 update 하기
|
| 28377 | |
| 20391 | |
| 20390 |
PHP
한글문자열 자르는 법 입니다.
|
| 20389 | |
| 20388 | |
| 20387 |
PHP
이메일주소 검사하기 입니다.
|
| 20386 | |
| 20385 | |
| 20384 |
node.js
Node js 게시판 프로젝트 소개합니다.
|
| 20383 |
PHP
pc 모바일 체크
1
|
| 20382 |
PHP
계정 사용량(용량) 확인
|
| 8238 | |
| 20380 | |
| 20379 |
MySQL
소수점 반올림 버림
|
| 28376 | |
| 28372 | |
| 20378 | |
| 20377 |
PHP
에러 로그파일 생성하기
|
| 8235 | |
| 20375 | |
| 20374 | |
| 20373 |
PHP
후이즈검색 하기 입니다.
|
| 20372 |
PHP
그래프 그리기 입니다.
|
| 20371 |
JavaScript
자바스크립트로 구현한 number_format() 입니다.
|
| 20370 |
JavaScript
금액 관련 숫자를 한글로 변환하기 입니다.
|
| 28370 | |
| 20369 |
PHP
PHP 날짜 계산 관련 함수
|
| 28366 | |
| 20368 |
jQuery
jQuery 1.x와 2.x 버전 동시에 사용하기
|
| 20367 | |
| 20366 | |
| 20365 |
JavaScript
사업자 등록번호 검사하기 입니다.
|
| 20364 | |
| 20363 |
JavaScript
항상 같은곳에 광고창 만들기 입니다.
|
| 20362 |
JavaScript
부메뉴 나오게 하기 입니다.
|
| 20361 |
JavaScript
특정문자 제거하기 입니다.
|
| 20360 |
JavaScript
휴대폰번호 검사 하기 입니다.
|
| 20359 |
JavaScript
이미지 좌우로 이동 갤러리 입니다.
|
| 8231 | |
| 20358 | |
| 20357 |
JavaScript
쉬운 replaceAll 입니다.
|
| 20356 | |
| 20355 | |
| 20354 | |
| 20353 | |
| 20352 |
JavaScript
콤보스타일 메뉴 입니다.
|
| 20351 |
JavaScript
쿠키를 이용한 레이어 공지창 입니다.
|
| 20350 |
JavaScript
효과있는 텍스트 틱커 입니다.
|
| 20349 | |
| 20348 |
PHP
HTTP 인증 하기 입니다.
|
| 20347 |
JavaScript
외부 문서 불러오기 입니다.
|
| 20346 |
JavaScript
지정한 날짜까지 New 이미지를 띄워주기 입니다.
|
| 20345 | |
| 20344 |
JavaScript
메일 주소 검사하기 체크박스 입니다.
|
| 20343 |
JavaScript
무단링크 금지하기 입니다.
|
| 20342 | |
| 20341 |
MySQL
DB백업 및 복원
|
| 20340 |
JavaScript
페이지가 다른 사이트의 프레임에 갇히는 것을 막기 입니다.
|
| 20339 | |
| 20338 | |
| 20337 |
jQuery
input text 대문자만 받는 Jquery
|
| 20336 | |
| 20335 |
JavaScript
이미지 업로드와 미리보기 입니다.
|
| 20334 |
JavaScript
배경음악 랜덤 재생 하기 입니다.
|
| 20333 |
JavaScript
css 지원 여부 확인해서 다른 페이지로 이동하기 입니다.
|
| 20332 |
JavaScript
하부메뉴가 보였다가 숨겨졌다 하는 토글버튼 입니다.
|
| 20331 |
JavaScript
개별 페이지에 인덱스로 거쳐 들어오게 하기 입니다.
|
| 20330 |
JavaScript
랜덤으로 이미지 출력 되기 입니다.
|
| 20329 |
JavaScript
사용자 해상도 알아내기 입니다.
|
| 20328 |
JavaScript
붙여넣기 금지하기 입니다.
|
| 20327 |
MySQL
대소문자 데이터 조회하기
|
| 20326 |
JavaScript
퇴장시 팝업창 한번한 띄우기 입니다.
|
| 20325 | |
| 20324 | |
| 20323 |
JavaScript
시도, 구군, 동 주소 select
|
| 20322 |
MySQL
커리로 DB 테이블 명세서 출력하기
|
| 20321 |
JavaScript
브라우저 해상도 구분없는 절대 x,y 좌표 값 구하기 입니다
|
| 20320 |
PHP
rss 읽어오기 입니다.
|
| 20319 |
JavaScript
자바스크립트로 Ajax 효과내기 입니다.
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기