화분

오늘 공부한 것들... 12월 6일 본문

Study/TIL(Today I Learned)

오늘 공부한 것들... 12월 6일

ExcellEast 2023. 12. 6. 11:33

 

1.Socket.IO를 활용한 채팅 기능 프로토타입 구현(React, Spring)

-Socket.IO 와 RSocket의 차이?

Socket.IO와 RSocket 모두 실시간, 양방향성, 클라이언트와 서버 간 이벤트 기반 통신을 한다는 공통점이 있다. 하지만 기저의 프로토콜과 그것들이 제공하는 시멘틱에 차이가 있다.

Socket.IO는 WebSocket과 HTTP long-polling의 저수준 파이프라인을 다루는 Engine.IO의 위에 만들어졌다. 반대로, RSocket은 TCP, WebSockets, 그리고 Aeron과 같은 바이트 스트림 전송에 사용하기 위한 이진(binary) 프로토콜이다. RSocket은 클라이언트-서버, 서버-서버 간 통신 사이에 *Reactive Streams semantics를 위한 프로토콜을 제공한다. Socket.IO와 RSocket 모두 실시간 양방향성 통신을 위한 라이브러리지만 Socket.IO는 Engine.IO 위에 만들어졌다는 점, 그리고 RSocket은 바이트 스트림 전송에 사용되는 이진 프로토콜이라는 차이점이 있다.

 

-서로 다른 웹소켓 라이브러리 간 통신이 가능한 이유는?

WebSocket은 IETF에 의해 표준화된 프로토콜(WS 프로토콜, RFC 6455)이고, 이 표준을 따른다면 어떤 라이브러리든 기본적인 호환이 가능하다. WS 프로토콜 통신은 'ws://' 또는 보안화된 'wss://' URL 스킴을 사용한다. 

다만, Socket.IO 처럼 조금 더 추상화된 기능을 제공하는 웹소켓 라이브러리는 다른 라이브러리엔 없는 기능을 사용할 경우엔 호환이 되지 않을 수도 있다. 이 점을 유의해서 프로그래밍을 해야 한다.

 

그 외 살펴본 것들

-CRDT와 socket.io를 활용한 동시 작업 가능한 IDE 관련 글 읽음( Building a Shared Code-Editor using Node.js, WebSocket and CRDT | by Akshat Chauhan | Medium

 

[Spring] 웹소켓으로 실시간 채팅 구현 (velog.io)