[flutter] - Flutter에서의 웹 소켓 통신 방법

웹 소켓(WebSocket)은 양방향 통신을 가능하게 해주는 프로토콜이다. Flutter에서는 웹 소켓을 사용하여 실시간으로 데이터를 주고받을 수 있다. 이제 Flutter에서 웹 소켓을 통한 통신 방법에 대해 알아보자.

1. 웹 소켓 패키지 추가

먼저, Flutter 프로젝트에 웹 소켓을 사용하기 위해 web_socket_channel 패키지를 추가해야 한다. pubspec.yaml 파일에 다음과 같이 패키지를 추가해준다.

dependencies:
  web_socket_channel: ^2.0.0

2. 웹 소켓 연결

이제 Flutter 앱에서 웹 소켓을 연결해보자. 먼저, WebSocketChannel을 생성하여 서버와의 연결을 설정한다. 다음은 예시 코드이다.

import 'package:web_socket_channel/io.dart';

final channel = IOWebSocketChannel.connect('ws://example.com/ws');

위 코드에서 ws://example.com/ws는 웹 소켓 서버의 URL을 나타내며, 해당 주소에 알맞게 수정해야 한다.

3. 메시지 송수신

웹 소켓 연결이 완료되면, WebSocketChannel 객체를 통해 데이터를 송수신할 수 있다. 다음은 예시 코드이다.

// 서버로 메시지 전송
channel.sink.add('Hello, server!');

// 서버로부터 메시지 수신
channel.stream.listen((message) {
  print('Received: $message');
});

위 코드에서 sink는 서버로 데이터를 보내는 메서드이고, stream은 서버로부터 데이터를 받는 메서드이다. 아래 코드는 서버로부터 메시지를 받을 때마다 화면에 출력하는 모습을 나타낸다.

4. 연결 종료

웹 소켓 통신이 더 이상 필요하지 않을 때, 연결을 종료해야 한다. 다음은 연결을 종료하는 예시 코드이다.

// 연결 종료(필수적인 작업)
channel.sink.close();

웹 소켓 통신을 사용하는 Flutter 앱을 개발하려면 위의 단계를 따라야 한다. 웹 소켓을 통해 효율적이고 빠른 실시간 통신을 구현할 수 있다. 참고한 flutter_web_socket 패키지의 문서를 참고하여 더 자세한 사용법을 알아보기를 추천한다.

참고 자료: