통신 방식 자체가 웹 소켓이라는 것이 일반 HTTP 통신과는 차이점이 있기 때문에 서버 뿐만 아니라 클라이언트도 웹 소켓의 특성을 적용해야 한다.
플러터로 웹 소켓 통신 방식을 활용하기 위한 클라이언트 구축하는 방법을 알아보자
1. SocketIO 패키지 설치
dependencies:
socket_io_client:
- pubspec.yml 에 넣어주고 flutter pub get 실행
2. 해당 패키지 임포트
import 'package:socket_io_client/socket_io_client.dart' as IO;
3. 웹 소켓 연결 설정
final IO.Socket socket = IO.io('<http://10.0.2.2:5000>',
IO.OptionBuilder().setTransports(['websocket'])
.build());
- 해당 패키지를 이용하여 웹 소켓이 적용된 서버의 아이피를 적는 등의 설정과 동시에 State를 생성한다.
4. 웹 소켓 서버 연결
@override
void initState() {
super.initState();
socket.connect(); // 서버 연결
setSocketEvent();
}
- socket.connect() 함수를 initState() 함수 안에 넣어서 해당 위젯이 실행될 때 연결이 실행되도록 한다.
5. 데이터를 송수신하는 방법
socket.emit('sendEventName', data) # 데이터 송신
socket.on('receiveEventName', (data) { # 데이터 수신
print('받은 데이터: ' + data);
});
- 서버와 데이터를 송수신하기 위해서는 각 작업이 이루어지는 이벤트 이름을 서버와 통일한다.
- 첫 번째 파라미터에는 그에 해당하는 이벤트 이름을 적고, 두 번째 파라미터에는 보내거나 받는 데이터가 사용된다.
'앱개발 > Flutter' 카테고리의 다른 글
[Flutter] WebView로 앱 내에 웹사이트 출력 (0) | 2024.02.01 |
---|---|
[Flutter] 앱 내 기기의 카메라 화면 표출 (0) | 2024.01.20 |
[Flutter] 플러터에 대해서 간단히 알아보자! (1) | 2024.01.15 |