node.js의 소켓.io 학습 튜토리얼 소개(1)
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 폴링
플러그인>
WebSocket 지원:
HTTP 스트림, AJAX 롱 폴링, AJAX 폴링 기본 지원
플러그인: 기본적으로 지원되지 않음
WebSocket < AJAX Polling< AJAX Long Polling
socket.io는 WebSocket이 지원되지 않는 경우 완벽하게 작동하는 다운그레이드된 AJAX 폴링도 제공합니다. 실시간 양방향 통신을 개발하는 가장 좋은 방법입니다.
위 내용은 node.js의 소켓.io 학습 튜토리얼 소개(1)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











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

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

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

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

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

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

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

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