[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');
});
연결 종료
통신이 끝나면, 웹 소켓 연결을 종료해야 합니다. WebSocketChannel
의 sink
와 stream
은 사용한 후에는 반드시 닫아주어야 합니다. 다음은 연결 종료를 하는 예제입니다.
// ...
channel.sink.close();
위의 예제를 참고하여 플러터 앱에서 웹 소켓을 사용하여 서버와 통신할 수 있습니다. 이를 활용하여 실시간 데이터 전송이나 채팅 애플리케이션을 개발할 수 있습니다.
참고 문서: