Web Socket
HTML5 표준의 일부로, TCP 소켓을 기반으로 작동하며, 실시간 데이터 전송이 필요한 애플리케이션에서 주로 사용된다. 클라이언트와 서버 간의 실시간 양방향 통신을 가능하게 하며, 연결을 유지하면서 데이터를 주고받을 수 있는 프로토콜이다.
npm install @nestjs/websockets @nestjs/platform-socket.io
import { WebSocketGateway, SubscribeMessage, MessageBody } from '@nestjs/websockets';
import { Socket } from 'socket.io';
@WebSocketGateway()
export class ChatGateway {
@SubscribeMessage('message')
handleMessage(@MessageBody() data: string, client: Socket): string {
console.log('Message received: ', data);
client.emit('message', 'Message received!');
return 'Message received on server!';
}
}
import { Module } from '@nestjs/common';
import { ChatGateway } from './chat.gateway';
@Module({
providers: [ChatGateway],
})
export class ChatModule {}
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io('http://localhost:3000');
socket.emit('message', 'Hello server!');
socket.on('message', (data) => {
console.log(data);
});
</script>