채팅

채팅 메시지를 보내고 받을 때 FFMessage라는 모델을 사용합니다.

messageType은 지정되어 있는 값으로서 사용자가 추가할 수 없습니다. 사용자의 커스텀을 위해서는 customType과 data에 원하는 값을 넣어서 메시지를 구별할 수 있습니다.

FFMessage의 내용은 다음과 같습니다.

fieldtypedescription
idString메시지 ID. 보낼때는 없어도 된다.
messageString사용자가 보내는 메시지
typeString메시지를 그룹짓는 타입.
customTypeString메시지를 특정 용도로 그룹지을 때 사용하는 값
dataString메시지와 추가하고 싶은 내용이 있을 때 사용하는 값
createdAtData메시지 생성 시간
userIDString사용자 ID
userNameString사용자 이름
avatarProfileURLString사용자 프로필 사진

채팅 관련 통계 정보를 위해서는 FFState를 사용합니다.

fieldtypedescription
participantCountLong라이브 동접자 수
totalWatchCountLong라이브 전체 사용자 수

사용자는 두가지 형태의 메시지를 보낼 수 있습니다. 하나는, 라이브를 보고 있는 전체 사용자에게 메시지를 보내는 것이고, 두번째는 특정 사용자에게만 메시지를 보내는 것입니다. 첫번째 경우의 메시지를 보낼 때는 ‘sendMessage’ 함수를 사용하고, 두번째 경우의 메시지를 보낼 때는 ‘sendWisper’ 함수를 사용합니다. 두 함수 모두 커스텀 형태로의 사용을 위해 파라메터로 customType과 data를 제공하고 있습니다. (커스텀 예: 채팅을 주고 받을 때 질문과 답변의 경우 UI를 다르게 표시하고 싶은 경우, 질문의 경우는 customType에 QUESTION을 넣어주고, 답변의 경우는 customType에 ANSWER을 넣어줍니다. 그리고 메시지를 받는 쪽에서 customType을 보고 그에 맞는 UI를 보여줍니다.)

서버가 보내는 메시지는 현재 다음의 값들이 있습니다.(추후 계속 추가될 수 있습니다.) 관련 메시지를 받으면 클라이언트에서 원하는 형태로 메시지를 표시해 주면 됩니다. (예: JOIN 메시지가 들어왔을 때는 “XXX 님이 들어왔습니다.”를 채팅창에 보여주고 LEAVE 메시지가 들어왔을 때는 무시)

messageTypecustomTypedata설명
ADMINCLOSEnil라이브 종료를 알리는 메시지
DISCONNECTnil라이브가 강제로 종료되었음을 알리는 메시지(예: 어드민이 강제 종료할 수 있습니다.)
UPDATE{ “like_count”: 5 }라이브 관련한 정보를 클라이언트에게 알려주는 메시지. JSON 형식이며, 현재는 like_count만 있고 추후 추가될 수 있습니다.
ACTIVEnil라이브 송출이 시작되었음을 클라이언트에게 알리는 메시지
INACTIVEnil라이브 송출이 중단되었음을 클라이언트에게 알리는 메시지
JOINnilnil사용자가 채팅방에 들어왔음을 알리는 메시지
LEAVEnilnil사용자가 채팅방을 나갔음을 알리는 메시지