채팅 채널 관리

일반채널 혹은 길드채널에 대한 정보를 확인하는 기능입니다.

안내
GetChannelList 혹은 GetGuildChannel 호출 시, 뒤끝챗의 DAU가 발생합니다.

일반채널 리스트 가져오기

일반채널은 프로젝트 내의 유저 누구나 접근할 수 있는 채팅 채널입니다.
뒤끝챗은 최대 100명을 수용할 수 있는 채널을 제공합니다. 생성되어 있는 모든 채널에서 더 이상 유저를 수용할 수 없는 경우 자동으로 새로운 채널이 생성됩니다.
또한 채널 별칭(alias)은 자동으로 생성되며, {프로젝트 이름}#{auto increment value} 와 같습니다.

동기

GetChannelList( ) -> BackendReturnObject

// example
Backend.Chat.GetChannelList ();

비동기

GetChannelList( Function callback ) -> void

// example
BackendAsyncClass.BackendAsync(Backend.Chat.GetChannelList, callback => 
{
    // 이후 처리
});

결과값 예시

{
    rows:
    [
        {
            uuid: "fc47ce4e-8219-4ecc-8ce0-40a001885ecc", // 채널 uuid
            alias: "projectName#1",  // 채널 별칭 ({프로젝트 이름}#{auto increment value})
            registrationDate: "2018.12.26 04:42:06.010Z", // 채널 생성일시 (utc)
            serverHostName: "ec2-54-180-93-125.ap-northeast-2.compute.amazonaws.com", // 채널 서버 host name
            serverPort: 50000, // 채널 서버 port
            joinedUserCount: 0, // 채널에 입장한 현재 유저 수
            maxUserCount: 100 // 채널에 입장할 수 있는 유저 수
        },
        {
            uuid : [Object],
            alias: [Object],
            registrationDate: [Object],
            serverHostName: [Object],
            serverPort: [Object],
            joinedUserCount: [Object],
            maxUserCount: [Object]
        }
    ]
}

Error case

  • 채팅 서비스가 비활성화상태인 경우
    statusCode : 412
    errorCode : PreconditionFailed
    message : chat server is not available 사전 조건을 만족하지 않습니다.

  • 유저 닉네임이 존재하지 않는 경우
    statusCode : 428
    errorCode : Precondition Required
    message : Precondition Required nickname

길드채널 리스트 가져오기

길드에 가입한 유저가 해당 메소드를 호출하는 경우, 가입한 길드에 대한 채팅정보가 리턴됩니다.

동기

GetGuildChannel() -> BackendReturnObject

// example
Backend.Chat.GetGuildChannel();

비동기

GetGuildChannel( Function callback ) -> void

// example
BackendAsyncClass.BackendAsync(Backend.Chat.GetGuildChannel, callback => 
{
    // 이후 처리
});

결과값 예시

{
    uuid: "new year", // 채널 uuid (길드명)
    alias: "new year", // 채널 별칭 (길드명)
    registrationDate: "2018.12.26 00:37:37.401Z", // 채널 생성일시 (utc)
    serverHostName: "ec2-54-180-93-125.ap-northeast-2.compute.amazonaws.com", // 채널 서버 host name
    serverPort: 50000, // 채널 서버 port
    joinedUserCount: 0, // 채널에 입장한 현재 유저 수
    maxUserCount: 100 // 채널에 입장할 수 있는 유저 수
}

Error cases

  • 길드가 존재하지 않는 유저의 경우
    statusCode : 404
    errorCode : GuildNotFoundException
    message : Guild not found, Guild을(를) 찾을 수 없습니다

  • 채팅 서비스가 비활성화상태인 경우
    statusCode : 412
    errorCode : PreconditionFailed
    message : chat server is not available 사전 조건을 만족하지 않습니다.

  • 유저 닉네임이 존재하지 않는 경우
    statusCode : 428
    errorCode : Precondition Required
    message : Precondition Required nickname

채널에 입장하기

채널 리스트에 존재하는 채널을 선택하여 입장합니다. 리턴 값은 통신 성공여부 입니다.

JoinChannel(ChannelType type, String serverHostName, String serverPort, String channlUUID, out ErrorInfo errorInfo) -> bool

// example
ErrorInfo errorInfo;
Backend.Chat.JoinChannel(ChannelType.Public, "serverHostName", "serverPort", "channelUUID", out errorInfo);

Parameters

ValueTypeDescription
typeChannelType (enum)입장할 채널의 종류. ChannelType.Public(일반) 혹은 ChannelType.Guild(길드)
serverHostNameString접속할 대상 서버 주소
serverPortString접속할 대상 서버 포트
channelUUIDString접속할 채널의 uuid
errorInfoString성공/실패 정보

채팅 메세지 전송

현재 접속한 채널에 메세지를 보냅니다. 채팅 메세지의 최대 길이는 512byte 입니다.

주의
  • Backend-3.8.8 이후 버전에서 보낸 메시지는 Backend-3.8.7 버전 이하에서 수신할 수 없습니다.
  • Backend-3.8.8 이후 버전끼리는 메시지를 정상적으로 주고받을 수 있습니다.
  • Backend-3.8.7 이전 버전끼리는 메시지를 정상적으로 주고받을 수 있습니다.
  • ChatToChannel(ChannelType type, string message) -> void
    
    // example
    Backend.Chat.ChatToChannel(ChannelType.Public, "안녕하세요. 반갑습니다.");

    Parameters

    ValueTypeDescription
    typeChannelType (enum)메세지를 전송할 채널의 종류. ChannelType.Public(일반) 혹은 ChannelType.Guild(길드)
    messageString전송할 채팅 메세지

    채널 퇴장하기

    현재 접속한 채널에서 퇴장합니다.

    LeaveChannel(ChannelType type) -> void
    
    // example
    Backend.Chat.LeaveChannel(ChannelType.Public);

    Parameter

    ValueTypeDescription
    typeChannelType (enum)퇴장할 채널의 종류. ChannelType.Public(일반) 혹은 ChannelType.Guild(길드)