Socket.입출력(I/O)의 최신 버전 4.x 정보 보기(2022년 3월)

'Socket.IO'느낌은 2013년이나 2014년께 처음 접한 것 같다.
최근 실시간 통신 시스템은 웹소켓을 직접 처리하고 MQTT를 사용하는 느낌으로 소켓을 사용하고 있다.입출력(I/O)을 더 이상 사용하지 않습니다.
그리고 언제 메인 버전이 여러 번 업그레이드되었는지 지금은 4입니다.x로 변하는 상황.
●Socket.IO
  https://socket.io/
그리고 오랜만에 최신판 소켓.IO를 조금 사용하려고 이 기사의 내용을 만들어 봤어요.
공식적인 최신 정보를 보세요.
Socket.IO는 실시간 통신의 메커니즘을 제공하고 서버와 고객측 각자의 메커니즘을 제공한다.
대응 언어(서버 및 클라이언트 측)
Socket.IO 공식 Introduction 페이지(v4)에서 우리는 서버 클라이언트로서 제공하는 메커니즘의 최신 상황을 확인할 것이다.

상술한 부분을 보면 다음과 같은 언어로 처리할 수 있다.
  • 서버 측
  • JavaScript
  • Java
  • Python
  • 클라이언트
  • JavaScript
  • Java
  • C++
  • Swift
  • Dart
  • Python
  • .Net
  • Golang
  • Rust
  • Kotlin
  • 고객 측의 대응 언어는 Golang, Rust 등으로 대응 범위가 넓다.
    간단한 샘플
    그리고 Introduction 페이지에는 다음과 같은 간단한 샘플이 실렸다.
    둘 다 JavaScript의 첫 번째는 서버이고 두 번째는 클라이언트입니다.
    import { Server } from "socket.io";
    
    const io = new Server(3000);
    
    io.on("connection", (socket) => {
      // send a message to the client
      socket.emit("hello from server", 1, "2", { 3: Buffer.from([4]) });
    
      // receive a message from the client
      socket.on("hello from client", (...args) => {
        // ...
      });
    });
    
    import { io } from "socket.io-client";
    
    const socket = io("ws://localhost:3000");
    
    // send a message to the server
    socket.emit("hello from client", 5, "6", { 7: Uint8Array.from([8]) });
    
    // receive a message from the server
    socket.on("hello from server", (...args) => {
      // ...
    });
    
    자세한 내용은 공식 문서의 아래 내용을 보십시오.
    ●Server Installation | Socket.IO
      https://socket.io/docs/v4/server-installation/
    ●Client Installation | Socket.IO
      https://socket.io/docs/v4/client-installation/
    고객 세부 사항 보기
    위의 "Client Installation"등의 클라이언트 측 정보를 참조하십시오.
    버전 간 호환성
    글의 첫머리에는 과거 버전과 호환되는 정보가 언급되었다.

    서버 4.x로 설정하고 클라이언트 측은 2로 설정합니다.x 이상이면 대응할 수 있습니다.
    고객 측면x를 사용하면 서버는 3입니다.x 이상이 필요합니다.
    브라우저 지원
    또한 브라우저의 대응은 다음과 같다.
    광범위하게 대응하고 있는 것 같습니다.

    클라이언트 패키지
    브라우저를 통해 클라이언트를 이동할 때 4개의 CDN에서 라이브러리를 읽을 수 있습니다.

    그리고, 노드.js에서 사용할 때npm install socket.io-client 포장을 설치합니다.
    기타(클라이언트 관련)
    클라이언트 측의 행위에 관해서는 다음과 같은 정보를 볼 수 있다.
    ●The Socket instance (client-side) | Socket.IO
      https://socket.io/docs/v4/client-socket-instance/
    서버 세부 사항 보기
    위의 "Server Installation"등의 서버 관련 정보를 확인하십시오.
    서버 준비
    여기는 노드입니다.제이스를 사용한 물건을 보고 올게요.
    설명을 봤습니다. Node.js의 버전은 10개 이상이 필요합니다.
    서버 설치에 관해서는 다음과 같은 명령의 예가 있다.
    또 이후 특정 버전을 지정해 설치하는 이야기도 썼다.

    추가 매크로 패키지
    Socket.IO의 추가 포장에 대한 설명도 적었다.
    追加パッケージについて
    기본적으로 Socket이 사용됩니다.IO에서 WebSocket을 처리하는 패키지를 사용하는 ws를 사용할 때 이것과 결합하여 아래 두 개의 패키지를 사용할 수 있다고 한다.
    ●bufferutil - npm
      https://www.npmjs.com/package/bufferutil
    ●utf-8-validate - npm
      https://www.npmjs.com/package/utf-8-validate
    WebSocket용 포장 교체
    웹소켓을 처리하는 포장을 사용하는 ws라면 쓰여있는데 그걸 다른 것으로 바꿀 수 있을 것 같아요.
    공식 문서는 eiowsuWebSockets.js 두 개가 있다.


    서버 초기화
    공식 문서Server Initialization의 페이지에 먼저 다음과 같은 독립적인 사용 예를 썼다.

    이후 각각 다음과 같은 조합의 모델을 썼다.
    (아래 뒤에 쓰여 있는 것, 처음 보는 것이 뒤섞여 있다.)
  • HTTP server
  • HTTP/2 server
  • Express
  • Koa
  • Nest
  • Fastify
  • µWebSockets.js
  • 끝말
    이번 <Socket.IO>의 최신 버전 4.x에 관해서 나는 공식 문서의 정보를 보았다.
    글의 첫머리에서 말한 바와 같이 최근에는 실시간 통신 시스템에서 Socket이 사용되고 있다.IO를 사용하지 않았지만 재밌는 메시지를 많이 썼기 때문에 좀 더 오랜만에 사용해보고 싶어요.
    그리고 저는 문서에 나타난 다음과 같은 내용에 관심이 많아서 Socket입니다.IO와는 상관없이 보고 싶어요.
  • Nest
  • Fastify
  • µWebSockets.js
  • 좋은 웹페이지 즐겨찾기