Skip to content

소켓 이벤트

J220_홍한솔 edited this page Nov 16, 2021 · 11 revisions

서버 -> 처음 소켓 연결 시킬 때 (connection 이벤트 발생) [ uid, socketid ] Map에 넣어주기

신청 & 요청

폴더 위치 이벤트 이름 내용 설명
Template/ProfileModal.tsx requestChat 실시간 채팅 신청하기 /postRequest API (from, to) -> to가 db에 있는지 체크 -> 있으면 res.send(true)(false) true라면 from에서 atom에 저장 -> emit (from, to)-> 받는애가 ATOM : requestState에 저장하기 -> 대기중인 요청들 갯수 icon에 나타내기
Page/RequestPage.tsx requestDeny 요청 거절하기 /denyRequest api 호출 (from, to ) -> to 클라이언트에서 지워주기 -> EMIT (from, to) -> from 에 해당하는 client에서 Request 지워주기 (이벤트 이름 : receiveDenyRequest )
Page/RequestPage.tsx requestAccept 요청 수락하기 api 호출 (from:member 배열, to: member 배열) -> Emit (from, to) -> from, to에 해당하는 모든 client에서 데이터 다시 받아오기 (이벤트 이름 : receiveAcceptRequest)

호출 API

  • 신청하기 : post api/core/postRequest body : {from : string|number , to : string|number}
  • 거절하기 post api/core/denyRequest body : {from : string|number , to : string|number}
  • 수락하기 post api/core/acceptRequest body : {from : string|number , to : string|number}

서버 emit 이벤트

  • 신청하기 : receiveRequest -> data : RequestType
  • 거절하기 : receiveDenyRequest -> data : {from:string ,to:string}
  • 수락하기 : receiveAcceptRequest -> data : { ChatInfoType , from , to }

채팅

폴더 위치 이벤트 이름 내용 설명
Organism/ChatDetail.tsx sendChat 실시간 채팅 보내기 EMIT (uid,chatRoomId,chat) -> API 호출
Template/ChatListTemplate.tsx receiveChat 실시간 채팅 내역 받아오기 ON (uid,chatRoomId,chat) ATOM : ChatsState & ChatTarget 둘 다 저장 -> ON Atom : JoinChatRoom 저장
어딘가. tsx 채팅방 참가 소켓에 join 채팅방
{ chatRoomid:chatRoomId, message: {from:uid,message:chat,read:false,source:""} } 

보내기 send on 이벤트 : receiveChat

{chatRoomId: number , 
  message : {  from: string; 
               message?: string;
               read: boolean;
               source?: string;  }
}

WEBRTC

폴더 위치 함수명 내용
Template/ChatRoomRight.tsx 실시간 화상 채팅
Template/ChatRoomRight.tsx 실시간 음성 채팅

게임 관련

폴더 위치 함수명 내용
Molecules/ChatRoomGame.tsx 실시간 게임
Molecules/ChatRoomGather.tsx 실시간 게더타운
Clone this wiki locally