Flutter에서 Stream은 데이터 스트림을 처리하는 데 유용한 기능입니다. 하지만 기본적으로 Stream은 한 곳에서만 listening할 수 있습니다. 여러 곳에서 동시에 Stream을 listening해야 하는 경우 어떻게 해야 할까요?
BroadcastStream이란 무엇일까요?
BroadcastStream은 여러 곳에서 동시에 listening할 수 있도록 설계된 Stream입니다. 일반 Stream과 달리, BroadcastStream은 데이터를 여러 구독자에게 동시에 전파합니다.
BroadcastStream 사용 방법
BroadcastStream을 사용하려면 다음 단계를 따르세요.
- StreamController 생성: StreamController.broadcast 생성자를 사용하여 BroadcastStream을 생성합니다.
- Stream 얻기: controller.stream 속성을 통해 Stream을 얻습니다.
- Listening 시작: listen 메서드를 사용하여 여러 곳에서 Stream을 listening합니다.
- 데이터 추가: controller.add 메서드를 사용하여 Stream에 데이터를 추가합니다.
- Stream 종료: controller.close 메서드를 사용하여 Stream을 종료합니다.
BroadcastStream 예시
다음 코드는 BroadcastStream을 사용하여 두 곳에서 동시에 Stream을 listening하는 예시입니다.
void main() {
final controller = StreamController<int>.broadcast();
// 첫 번째 곳에서 listening
controller.stream.listen((data) {
print('첫 번째 곳: $data');
});
// 두 번째 곳에서 listening
controller.stream.listen((data) {
print('두 번째 곳: $data');
});
// 데이터 추가
controller.add(1);
controller.add(2);
controller.add(3);
// Stream 종료
controller.close();
}
BroadcastStream 사용 시 주의 사항
- BroadcastStream은 메모리 누수를 방지하기 위해 명시적으로 종료해야 합니다.
- 여러 곳에서 동시에 Stream을 listening하면 성능 저하가 발생할 수 있습니다.
'new' 카테고리의 다른 글
| Dart Lambda (0) | 2024.03.18 |
|---|---|
| Flutter Stream에서 onData, onDone, onError (0) | 2024.03.18 |
| Flutter StreamBuilder를 활용한 간단한 타이머 만들기 (0) | 2024.03.18 |
| StreamController를 이용한 데이터 관찰 예시 (0) | 2024.03.18 |
| Dart Stream: 데이터 흐름을 쉽게 처리하는 방법 (0) | 2024.03.18 |