📢 채팅 phoenix socket protocol v0.9
https://demo.alphapeople.me/ (ID: alphapeople / PW: corki)
일단 위 화면 정도를 만들어서 검증해봤습니다. GraphQL 은 schema 파일을 읽으시면 되는데,
phoenix socket 은 그런 규격이 없어서 여기에 정리합니다.
Chrome inspector 를 캡쳐했습니다.
아래에서 2번은 channel 이름, 3번은 event이름, 4번이 payload 입니다.
# 조인할 채널
user:<user_id> 로 join.
user_id 는 로그인때도 반환되고, 다시 받으려면 GraphQL getMe 로 받을수 있습니다.
user_id 는 로그인때도 반환되고, 다시 받으려면 GraphQL getMe 로 받을수 있습니다.
카톡을 보면 대화가 없던 친구를 선택해서 채팅창을 만들었다가, 아무 말도 안하고 빠져 나가면 대화가 생성되지는 않더라구요? 아마도 첫 메시지를 보내는 시점에 채팅이 생성되는것 같습니다.
저희도 그런식으로 해야 할것 같습니다. 구체화되면 공유할께요. 채팅 너무 복잡하네요.
닭이 먼저냐 달걀이 먼저냐이긴 한데, 말씀 주신 방향으로 구현되면 소켓 연결과 관계 없이 바로 보낼 수 있을 듯 합니다.
첫 채팅 메시지를 보낼때는 채팅방이 아직 생성되기 전이라 createMsg 를 쓸수 없고,
createChatWithFirstMsg 를 쓰시면 됩니다.
리턴되는 값에 생성된 originChatId 를 가지고 createMsg 를 쓰면 됩니다.
(카카오톡 등이 첫 메시지를 보내야 채팅방이 생기도록 되어 있어서 똑같이 되도록 변경했습니다.)
FCM 으로 푸시가 가는 경우에, 현재 앱을 열고 있으면 푸시를 안 받도록 하는건 앱에서 제어할수 있는건가요?
네 앱이 포그라운드에 있을 때 푸시알림 노출 여부는 클라이언트에서 설정 가능합니다. (디폴트는 미노출)