웹 소켓은 앵귤러와 함께 사용하기에 적합한 실시간 통신 기술입니다. 웹 소켓을 사용하면 서버와 클라이언트 간에 실시간 데이터를 주고받을 수 있습니다. 이번 글에서는 앵귤러와 웹 소켓을 연동하는 방법을 알아보겠습니다.
웹 소켓 모듈 설치하기
앵귤러에서 웹 소켓을 사용하기 위해서는 먼저 @angular/websocket
모듈을 설치해야 합니다. 다음 명령어를 사용하여 모듈을 설치합니다.
npm install --save @angular/websocket
웹 소켓 서비스 생성하기
@angular/websocket
모듈을 설치한 후에는 웹 소켓 서비스를 생성해야 합니다. 이 서비스는 웹 소켓과의 연결을 관리하고, 데이터를 주고받을 때 사용됩니다. 아래의 코드를 참고하여 웹 소켓 서비스를 생성합니다.
import { Injectable } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { webSocket } from 'rxjs/webSocket';
@Injectable({
providedIn: 'root'
})
export class WebSocketService {
private subject: Subject<any>;
constructor() { }
connect(url: string): Observable<any> {
if (!this.subject || this.subject.closed) {
this.subject = webSocket(url);
}
return this.subject.asObservable();
}
send(data: any): void {
if (this.subject && !this.subject.closed) {
this.subject.next(data);
}
}
close(): void {
if (this.subject && !this.subject.closed) {
this.subject.complete();
}
}
}
위 코드에서는 WebSocketService
라는 클래스를 생성하였고, connect
, send
, close
메소드를 정의하였습니다. connect
메소드는 웹 소켓 서버에 연결하고, send
메소드는 데이터를 서버로 전송합니다. close
메소드는 웹 소켓 연결을 종료합니다.
앵귤러 컴포넌트에서 웹 소켓 사용하기
이제 @angular/websocket
모듈을 사용하여 웹 소켓을 앵귤러 컴포넌트에서 사용해보겠습니다. 웹 소켓 서비스를 주입받은 후에 connect
메소드를 호출하여 서버와 연결하고, send
메소드를 사용하여 데이터를 전송할 수 있습니다. 아래의 코드를 참고하여 앵귤러 컴포넌트에서 웹 소켓을 사용하는 예제를 작성해보세요.
import { Component, OnInit } from '@angular/core';
import { WebSocketService } from 'src/app/web-socket.service';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponentComponent implements OnInit {
constructor(private webSocketService: WebSocketService) { }
ngOnInit(): void {
const url = 'ws://localhost:8080/socket'; // 웹 소켓 서버의 URL
this.webSocketService.connect(url)
.subscribe(data => {
// 서버로부터 데이터 받기
console.log(data);
});
}
sendData(): void {
const data = { key: 'value' }; // 전송할 데이터
this.webSocketService.send(data);
}
ngOnDestroy(): void {
this.webSocketService.close();
}
}
위 코드에서는 WebSocketService
를 주입받은 후에 connect
메소드를 호출하여 웹 소켓 서버에 연결합니다. 그리고 subscribe
메소드를 사용하여 서버로부터 데이터를 받을 수 있습니다. sendData
메소드는 데이터를 서버로 전송합니다. ngOnDestroy
메소드에서는 웹 소켓 연결을 종료합니다.
이제 웹 소켓을 사용하는 앵귤러 컴포넌트를 사용하여 실시간 데이터를 주고받을 수 있습니다.
참고 자료
웹 소켓을 앵귤러와 함께 사용하면 실시간 통신 기능을 구현할 수 있습니다. @angular/websocket
모듈을 사용하여 웹 소켓 서비스를 생성하고, 앵귤러 컴포넌트에서 사용하여 데이터를 주고받을 수 있습니다. 이를 통해 앵귤러 애플리케이션을 더 동적이고 인터랙티브하게 만들 수 있습니다.