[flutter] 플러터에서의 웹 소켓 통신 처리 방법

웹 소켓은 클라이언트와 서버 간 양방향 통신을 가능하게 해주는 프로토콜입니다. 이 글에서는 플러터에서 웹 소켓을 사용하여 서버와 통신하는 방법에 대해 알아보겠습니다.

웹 소켓 라이브러리 설치

플러터에서 웹 소켓을 사용하기 위해서는 web_socket_channel 라이브러리를 설치해야 합니다. 다음 명령어를 사용하여 라이브러리를 추가합니다.

dependencies:
  web_socket_channel: ^2.0.0

웹 소켓 연결

먼저, 플러터 앱에서 웹 소켓을 사용하기 위해 WebSocketChannel을 생성해야 합니다. 다음은 WebSocketChannel.connect() 메서드를 사용하여 서버에 웹 소켓 연결을 하는 예제입니다.

import 'package:web_socket_channel/io.dart';

// ...

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

데이터 전송

웹 소켓을 통해 데이터를 전송하기 위해서는 sink를 사용해야 합니다. sink는 데이터를 서버에 보내는 메서드입니다. 다음은 문자열을 서버로 보내는 예제입니다.

// ...

channel.sink.add('Hello, Server!');

데이터 수신

웹 소켓을 통해 데이터를 수신하기 위해서는 stream을 사용해야 합니다. stream은 서버로부터 수신된 데이터를 읽는 메서드입니다. 다음은 서버로부터 문자열을 수신하는 예제입니다.

// ...

channel.stream.listen((data) {
  print('Received: $data');
}, onError: (error) {
  print('Error: $error');
}, onDone: () {
  print('Connection Closed');
});

연결 종료

통신이 끝나면, 웹 소켓 연결을 종료해야 합니다. WebSocketChannelsinkstream은 사용한 후에는 반드시 닫아주어야 합니다. 다음은 연결 종료를 하는 예제입니다.

// ...

channel.sink.close();

위의 예제를 참고하여 플러터 앱에서 웹 소켓을 사용하여 서버와 통신할 수 있습니다. 이를 활용하여 실시간 데이터 전송이나 채팅 애플리케이션을 개발할 수 있습니다.


참고 문서: