개발자

플러터에 sockjs

2023년 10월 26일조회 136

현재 프론트엔드 파트에서 플러터를 이용하여 모바일 개발을 진행하고 있습니다 진행중인 프로젝트에 채팅방 기능이 있는데 플러터에서는 웹소켓을 이용하기 위해서 web_socket_channel 과 같은 패키지를 이용하여 소켓통신을 하는것으로 알고있습니다 그런데 백엔드에서 소켓통신을 할때 스프링부트와 sockjs를 이용하여 소켓통신 서버를 구축하고 해당 채널을 구독하면 메세지를 보내는 구조로 구성해 나갈거라 말해줬습니다. 현재 소켓통신과 관련하여 아무것도 해본적이 없고 플러터에서 웹소켓통신을 하기위해 관련 강의만 몇개 찾아본게 전부라 현재 어떤방식으로 소켓통신이 이루어져야 하는지 감이 오질 않습니다. 1. 백엔드에서 sockjs를 이용하여 프론트엔드 플러터와 통신을 하려 하는데 가능한가요? 2. 가능하다면 어떤 패키지를 사용하여야 하나요? 3. end point를 websocket으로 구독하고 해당 채널에 이벤트를 통해 메시지를 전달해 준다고 하는데 프론트에서는 어떤 처리를 해줘야 하나요?? 아직 부트캠프를 진행중이며 해당 프로젝트의 핵심기능중 하나라 질문남겨봅니다. 프론트에서 어떤 처리를 해줘야 하고 백엔드에서는 각각 어떤 처리를 해야 하는지 궁금합니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 0

답변이 없을 때 보이는 아이콘

첫 답변을 기다리고 있어요.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2023년 10월 26일

1. Flutter는 기본적으로 웹소켓을 지원하기 때문에, 백엔드에서 SockJS를 사용하여 서버를 구성하더라도 이와 통신하는 것이 가능합니다. 2. Flutter에서 웹소켓 연결을 하기 위해선 기본적으로 "web_socket_channel" 패키지를 많이 사용하고 있습니다. 3. 웹소켓 연결 후, 백엔드가 정의한 endpoint에 메시지를 송신하거나 수신하는 처리가 필요합니다. - 메시지 송신: WebSocketChannel 상태가 open일 때, channel.sink.add 메서드를 이용해서 메시지를 보낼 수 있습니다. - 메시지 수신: channel.stream.listen 메서드를 통해 서버로부터 오는 데이터 스트림을 수신/listen할 수 있습니다. 참고로 Flutter가 아직은 SockJS 프로토콜을 직접적으로 지원하지 않는 점과 SockJS가 주로 HTTP 롱 폴링 등의 폴백 옵션들을 제공하기 위해 만들어진 라이브러리인데 반해, 모바일 애플리케이션에선 롱 폴링 등의 필요성이 크게 없기 때문에 일반적인 웹소켓 연결 방식으로 충분할 수 있습니다. 따라서 백엔드와 협의 하에 단순 웹소켓을 사용하는 것이 더 좋을 수 있습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!