프로젝트 개요
문뜩 카페에서 공부하다가 생각난 아이디어로 시작한 프로젝트입니다. 카페에서는 와이파이를 이용해 대부분 인터넷을 이용합니다. 따라서 같은 와이파이를 이용하는 사용자일 경우 자동으로 채팅방이라는 한 공간에 모여 소통할 수 있도록 서비스를 개발하면 좋겠다고 생각했습니다.
사용 프레임워크
기본적인 웹 동작 js, ts 로는 ssid를 알 수 없습니다. 따라서 사용 중인 기기에 해당하는 와이파이를 알수 있고 Anodroid, IOS 를 동시에 개발할 수 있는 리액트 네이티브를 프론트엔드로 사용하였습니다.
백엔드로는 현재 공부중인 스프링부트를 사용하였습니다.
프로젝트 서비스 흐름도
리액트 네이티브 앱에서 ssid 를 검색해 현재 연결 중인 ssid 를 가져옵니다. ssid를 가져오게 되면 스프링 서버로 ssid와 device 아이디를 넘겨주게 되고 ssid에 해당하는 채팅방을 생성 후 소켓으로 연결합니다. 앱 실행 중에는 채팅을 소켓 방식으로 실시간으로 소통할 수 있도록 만들고 앱이 종료되어 있을 때 해당 와이파이에 접속이 끊기지 않았다면 스프링 부트와 fcm을 이용해 해당 채팅방에서 새로 등록된 채팅 내용(DB 변경감지를 이용)을 푸쉬 알람으로 전송해 줍니다.
프로젝트 계획
아직 구체화 하지 않았고 대략적인 시스템 구성과 흐름만 생각했습니다. 프로젝트는 다음과 같은 순으로 개발할 계획입니다.
1. 리액트 네이티브 WIFI SSID 가져와지는지 확인
2. 리액트 네이티브와 스프링 부트 연동 소켓 통신 확인
3. 소켓 통신 중 소켓이 끊어질 경우 FCM으로 메세지 전송 확인
4. 테이블 설계 및 기능 개발(해당 와이파이에 해당하는 룸을 생성한 후 룸에 해당하는 사람만 통신 가능, 데이터베이스 설계는 사용자, 채팅방 기록, 채팅방 번호, 메세지 등등)
5. 프로젝트 배포 후 테스트 및 ci/cd
개발하는 모든 소스코드는 깃허브에 등록하고 블로그에 정리해서 프로젝트 진행 사항을 올릴 예정입니다.
https://github.com/dkekzhs/nearChatProejct/
dkekzhs/nearChatProejct
와이파이를 이용한 근거리 채팅 서비스 . Contribute to dkekzhs/nearChatProejct development by creating an account on GitHub.
github.com
'프로젝트 정리 > 근거리 채팅' 카테고리의 다른 글
근거리 채팅 서비스 개발하기 (2) - 위치 기반 채팅방 검색, 채팅내역 저장 (0) | 2023.06.25 |
---|---|
근거리 채팅 서비스 개발하기 (1) - 프로젝트 ssid 가져올 수 없는 문제 (0) | 2023.01.14 |