대화방 생성을 위한 webSocket 개요!

WebSockets… 작성하기 전에

웹 소켓 왜? 어떻게 쓰는지 알아보자!

프로젝트에서 갑자기 실시간 대화방 시스템을 만들어야 합니다!!

여기서 “실시간”이란 나와 다른 참가자는 연결된 상태를 유지해야 합니다.

그런데 메시지를 보낼 때 POST 요청이 이루어집니다.

HTTP의 기본을 배우면 통신은 기본적으로 무국적자) 오전.

이유는 간단하지만 서버와 클라이언트를 계속 실행시키는 것은 서버가 낭비이기 때문입니다.

기본적으로 이 상태 비저장 상태(POST)에서 메시지가 전송되면 메시지가 재생(새로 고침)됩니다.

이전에 작성한 모든 채팅 메시지를 잊어버렸습니다.

따라서 실시간 채팅이나 화상 통화의 경우 연결 상태가 유지되어야 합니다.

WebSocket은 상태 저장을 지원합니다.


웹 소켓 대 HTTP 통신

https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/WebSocket

WebSocket() – 웹 API | MDN

WebSocket() 생성자는 새로운 WebSocket 객체를 반환합니다.

developer.mozilla.org

소켓.IO

GPT 채팅

Websocket과 Socket.IO는 모두 클라이언트와 서버 간의 실시간 통신을 위한 기술입니다. 그러나 그들은 약간의 차이점이 있습니다

웹 소켓: Websocket은 클라이언트와 서버 간의 실시간 양방향 통신을 위한 프로토콜입니다. 단일 TCP 연결을 통해 전이중(낮은 대기 시간) 채널을 제공합니다. Websocket은 모든 프로그래밍 언어와 함께 사용할 수 있으며 WebSocket API를 사용하여 브라우저에서 구현할 수 있습니다.

소켓.IO: Socket.IO는 클라이언트와 서버 간의 이벤트 기반 실시간 통신을 가능하게 하는 라이브러리입니다. WebSocket에 폴백 메커니즘을 제공함으로써 WebSocket을 지원하지 않는 이전 브라우저에서도 실시간 통신이 가능합니다. Socket.IO는 Node.js로 구현되며 많은 프로그래밍 언어와 함께 사용할 수 있습니다.

요약하면 WebSockets는 TCP 연결을 통해 실시간 통신을 허용하는 프로토콜이고 Socket.IO는 WebSocket 위에 구축된 라이브러리이며 이전 브라우저에서도 실시간 통신을 허용하는 대체 메커니즘을 제공합니다. Socket.IO는 WebSocket을 기반으로 하며 실시간 통신을 위한 간단하고 안정적인 API를 제공합니다.

이렇게 하면 socket.io를 websocket을 사용하는 라이브러리로 생각할 수 있습니다.

실제로 socket.io 메서드에는 대화방 생성이 훨씬 쉽고 생산성이 좋은 많은 기능이 포함되어 있습니다.

실제로 socket.io의 메서드를 살펴보겠습니다.

하나
2
4
5
6
7
8일
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
소총. 방출 (‘공지사항’, “이건 테스트야”); //발신자에게 보내기유일한 클라이언트
소켓.방송.방출(‘공지사항’, “이건 테스트야”); //보낸 사람을 제외한 모든 클라이언트에게 보내기
socket.broadcast.to(‘게임’).방출(‘공지사항’, ‘좋은 경기 였어’); //의 모든 클라이언트에게 보내기 ‘게임’ 송신기를 제외한 방(채널)
socket.to(‘게임’).방출(‘공지사항’, ‘게임을 즐겨라’); //송신 클라이언트에게만 전송 만약에 그들은에있다 ‘게임’ 공간(운하)
socket.broadcast.to(socketid).emit(‘공지사항’, ‘당신의 눈에만’); //단일 소켓 ID로 보내기
좋아요 방출 (‘공지사항’, “이건 테스트야”); //보낸 사람을 포함한 모든 클라이언트에게 보내기
io.in(‘게임’).방출(‘공지사항’, ‘멋진 게임’); //의 모든 클라이언트에게 보내기 ‘게임’ 공간(채널), 송신기 포함
io.of(‘마이네임스페이스’).방출(‘공지사항’, ‘gg’); //네임스페이스의 모든 클라이언트에 전송 ‘마이네임스페이스’발신자 포함
소켓.방출(); //연결된 모든 클라이언트에게 보내기
socket.broadcast.emit(); //메시지를 보낸 클라이언트를 제외한 연결된 모든 클라이언트에게 보내기
소켓.온(); //이벤트 리스너, 서버에서 실행하기 위해 클라이언트에서 호출 가능
io.sockets.socket(); //~을 위한 특정 고객에게 발급
io.sockets.emit(); //연결된 모든 클라이언트에게 보내기(예: socket.emit)
io.sockets.on() ; //클라이언트에서 첫 번째 연결.
CS

WebSocket에서 지원하지 않는 다양한 상황을 One-Line 방식으로 구현 가능!

이것은 특히 대화방과 같은 공간을 만들어야 할 때 매우 유용한 기술입니다.

다음 포스팅은 이 Soket.io로 간단한 대화방을 만드는 방법에 대한 것입니다!