[dart] Dart에서 웹 소켓 사용하기

Dart는 플랫폼 간 어플리케이션 개발을 위한 프로그래밍 언어로, 웹 개발 또한 가능합니다. 이 글에서는 Dart를 사용하여 웹 소켓을 구현하는 방법에 대해 알아보겠습니다.

웹 소켓이란?

웹 소켓은 클라이언트와 서버 간 실시간 양방향 통신을 가능하게 하는 프로토콜입니다. HTTP와 달리 웹 소켓은 지속적인 연결을 통해 데이터를 주고받을 수 있어 실시간 채팅, 게임, 주식 시세 업데이트 등에 적합합니다.

웹 소켓 라이브러리 설치

Dart에서 웹 소켓을 사용하기 위해서는 web_socket_channel 라이브러리를 설치해야 합니다. pubspec.yaml 파일에 아래와 같이 추가합니다.

dependencies:
  web_socket_channel: ^2.1.0

그런 다음, 다음 명령어로 라이브러리를 설치합니다.

dart pub get

웹 소켓 연결 설정

웹 소켓을 사용하기 위해 web_socket_channel 라이브러리를 import하여 클라이언트와 서버 간의 연결을 설정합니다.

import 'package:web_socket_channel/web_socket_channel.dart';
import 'package:web_socket_channel/io.dart';

void main() {
  final channel = IOWebSocketChannel.connect('ws://localhost:1234');
  // ... 
}

메시지 송수신

연결을 설정한 후에는 메시지를 주고받을 수 있습니다. 다음은 간단한 예시입니다.

클라이언트에서 메시지 송신

channel.sink.add('이것은 메시지입니다.');

서버에서 메시지 수신

channel.stream.listen((message) {
  print('수신한 메시지: $message');
});

연결 닫기

통신이 끝난 뒤에는 연결을 닫아야 합니다. 다음과 같이 channel.sink.close()를 호출하여 연결을 닫을 수 있습니다.

channel.sink.close();

위와 같은 방법으로 Dart에서 웹 소켓을 사용할 수 있습니다. 이를 응용하여 다양한 실시간 기능을 개발할 수 있습니다. Dart에서 웹 소켓을 사용하는 방법에 대해 더 알고 싶다면 공식 Dart 웹 사이트를 참고해보세요.