웹 프론트엔드 JS 튜토리얼 node.js의 소켓.io 학습 튜토리얼 소개(1)

node.js의 소켓.io 학습 튜토리얼 소개(1)

May 03, 2017 am 10:02 AM

Socket.io는 이벤트 기반의 실시간 양방향 통신을 제공하므로 다음 글에서는 주로 Socket.io 관련 정보를 소개하고, Socket.io 학습에 대한 기본 지식을 주로 소개합니다. 필요한 친구들이 참고할 수 있습니다. 함께 살펴보겠습니다.

머리말

웹과 서버 간의 실시간 데이터 전송은 매우 중요한 요구 사항이지만, 가장 먼저 AJAX 폴링 구현을 통해서만 가능합니다. WebSocket 표준이 도입되기 전에는 AJAX 폴링이 유일한 실행 가능한 방법이었습니다(Flash 브라우저를 통해서도 가능했지만 여기서는 논의하지 않습니다). AJAX 폴링의 원리는 타이머를 설정하여 정기적으로 AJAX를 통해 서버 데이터를 동기화하는 것입니다. 이 방법은 지연이 발생하고 서버에 과도한 부하를 줍니다. 2011년이 되어서야 IETF는 TCP 소켓을 기반으로 데이터를 보내고 받는 프로토콜인 WebSocket을 표준화했습니다. 요즘에는 모든 주요 브라우저가 WebSocket을 지원합니다.

socket.io는 데이터 전송 부분을 분리하여engine.io를 형성합니다. Engine.io는 WebSocket 및 AJAX 폴링을 캡슐화하여 API 세트를 형성합니다. 차이점과 호환성 문제를 해결하고 크로스 브라우저/크로스 디바이스 양방향 데이터를 실현합니다.

engine.io에는 소켓.io가 필요하지 않습니다. server.bind바인딩

애플리케이션을 통해 자체적인engine.io를 구현할 수도 있습니다.

  • 실시간 데이터 분석 표시(보고서, 로그)

  • 인스턴트 메시징, 채팅,

  • 바이너리 스트림(사진, 음악, 비디오) 전송

  • 다자 공동 편집

  • 인스턴트 메시지 푸시

유사 기술

  • AJAX 폴링: XMLHttpRequest 기반 AJAX 폴링

  • AJAX 긴 폴링: 폴링과 유사하게 클라이언트에 전송해야 할 데이터가 있을 때까지 클라이언트가 요청한 후 서버는 응답을 반환하지 않습니다. 클라이언트가 새로운 요청을 시작합니다. 단점은 추가 HTTP 헤더를 전송해야 하며 요청이 응답하지 않도록 하려면 추가 작업이 필요하다는 것입니다.

  • HTTP 스트림: AJAX 긴 폴링과 유사하게 서버 응답은 HTTP 헤더를 가져옵니다. Transfer-Encoding: chunked 데이터를 클라이언트에 반환한 후 클라이언트는 새로운 요청, 단점은 각 청크 사이의 데이터를 식별하고 처리하기 어렵다는 것입니다.

  • 플러그인: Flash 및 Silverlight와 유사하지만 주류 브라우저와 사용자가 플러그인을 점점 더 거부하고 있습니다.

다음은 다양한 각도에서 각 기술을 분석

  • 단방향/양방향

  • 단방향: AJAX 폴링, AJAX 롱 폴링, HTTP 스트리밍

  • 양방향: WebSocket, 플러그인

  • 지연

WebSocket < HTTP 스트림< AJAX 폴링

플러그인>

1. 모바일 단말은

WebSocket 지원:

HTTP 스트림, AJAX 롱 폴링, AJAX 폴링 기본 지원

플러그인: 기본적으로 지원되지 않음

1. 개발 또는 설정 용이성

WebSocket < AJAX Polling< AJAX Long Polling

요약

socket.io는 WebSocket이 지원되지 않는 경우 완벽하게 작동하는 다운그레이드된 AJAX 폴링도 제공합니다. 실시간 양방향 통신을 개발하는 가장 좋은 방법입니다.

위 내용은 node.js의 소켓.io 학습 튜토리얼 소개(1)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Node V8 엔진의 메모리와 GC에 대한 자세한 그래픽 설명 Node V8 엔진의 메모리와 GC에 대한 자세한 그래픽 설명 Mar 29, 2023 pm 06:02 PM

이 기사는 NodeJS V8 엔진의 메모리 및 가비지 수집기(GC)에 대한 심층적인 이해를 제공할 것입니다. 도움이 되기를 바랍니다.

Node의 메모리 제어에 관한 기사 Node의 메모리 제어에 관한 기사 Apr 26, 2023 pm 05:37 PM

Non-Blocking, Event-Driven 기반으로 구축된 Node 서비스는 메모리 소모가 적다는 장점이 있으며, 대규모 네트워크 요청을 처리하는데 매우 적합합니다. 대규모 요청을 전제로 '메모리 제어'와 관련된 문제를 고려해야 합니다. 1. V8의 가비지 수집 메커니즘과 메모리 제한 Js는 가비지 수집 기계에 의해 제어됩니다.

최고의 Node.js Docker 이미지를 선택하는 방법에 대해 이야기해 볼까요? 최고의 Node.js Docker 이미지를 선택하는 방법에 대해 이야기해 볼까요? Dec 13, 2022 pm 08:00 PM

Node용 Docker 이미지를 선택하는 것은 사소한 문제처럼 보일 수 있지만 이미지의 크기와 잠재적인 취약점은 CI/CD 프로세스와 보안에 상당한 영향을 미칠 수 있습니다. 그렇다면 최고의 Node.js Docker 이미지를 어떻게 선택합니까?

Node의 파일 모듈에 대해 자세히 이야기해 보겠습니다. Node의 파일 모듈에 대해 자세히 이야기해 보겠습니다. Apr 24, 2023 pm 05:49 PM

파일 모듈은 파일 읽기/쓰기/열기/닫기/삭제 추가 등과 같은 기본 파일 작업을 캡슐화한 것입니다. 파일 모듈의 가장 큰 특징은 모든 메소드가 **동기** 및 ** 두 가지 버전을 제공한다는 것입니다. 비동기**, sync 접미사가 있는 메서드는 모두 동기화 메서드이고, 없는 메서드는 모두 이기종 메서드입니다.

Node.js 19가 공식적으로 출시되었습니다. Node.js의 6가지 주요 기능에 대해 이야기해 보겠습니다! Node.js 19가 공식적으로 출시되었습니다. Node.js의 6가지 주요 기능에 대해 이야기해 보겠습니다! Nov 16, 2022 pm 08:34 PM

Node 19가 정식 출시되었습니다. 이 글에서는 Node.js 19의 6가지 주요 기능에 대해 자세히 설명하겠습니다. 도움이 되셨으면 좋겠습니다!

Node.js의 GC(가비지 수집) 메커니즘에 대해 이야기해 보겠습니다. Node.js의 GC(가비지 수집) 메커니즘에 대해 이야기해 보겠습니다. Nov 29, 2022 pm 08:44 PM

Node.js는 GC(가비지 수집)를 어떻게 수행하나요? 다음 기사에서는 이에 대해 설명합니다.

Node의 이벤트 루프에 대해 이야기해 봅시다. Node의 이벤트 루프에 대해 이야기해 봅시다. Apr 11, 2023 pm 07:08 PM

이벤트 루프는 Node.js의 기본 부분이며 메인 스레드가 차단되지 않도록 하여 비동기 프로그래밍을 가능하게 합니다. 이벤트 루프를 이해하는 것은 효율적인 애플리케이션을 구축하는 데 중요합니다. 다음 기사는 Node.js의 이벤트 루프에 대한 심층적인 이해를 제공할 것입니다. 도움이 되기를 바랍니다!

노드가 npm 명령을 사용할 수 없으면 어떻게 해야 합니까? 노드가 npm 명령을 사용할 수 없으면 어떻게 해야 합니까? Feb 08, 2023 am 10:09 AM

노드가 npm 명령을 사용할 수 없는 이유는 환경 변수가 올바르게 구성되지 않았기 때문입니다. 해결 방법은 다음과 같습니다. 1. "시스템 속성"을 엽니다. 2. "환경 변수" -> "시스템 변수"를 찾은 다음 환경을 편집합니다. 3. nodejs 폴더의 위치를 ​​찾습니다. 4. "확인"을 클릭합니다.

See all articles