메인 콘텐츠로 건너뛰기

Documentation Index

Fetch the complete documentation index at: https://docs.hyperx.dev/llms.txt

Use this file to discover all available pages before exploring further.

HyperX 채팅은 프로젝트 안의 인증된 유저가 채널에 참여하고 메시지를 주고받는 기능입니다. 서버는 채널, 멤버십, 메시지 순서, 읽음 위치, 신고 상태를 저장하고 Console에서 운영자가 확인할 수 있습니다.

채널 만들기와 참여

var channel = await HyperX.Core.Chat.CreateChannel(
    session.AccessToken,
    channelKey: "global",
    channelType: "project",
    displayName: "Global",
    retentionDays: 90
);

await HyperX.Core.Chat.Join(session.AccessToken, channel.Id);
지원 채널 유형은 project, guild, party, direct, announcement입니다. 공지 채널은 일반 유저가 읽기 전용으로 사용합니다.

메시지 보내기와 읽기

var sent = await HyperX.Core.Chat.Send(
    session.AccessToken,
    channel.Id,
    "hello"
);

var messages = await HyperX.Core.Chat.ListMessages(
    session.AccessToken,
    channel.Id,
    afterSequence: sent.Sequence - 1
);

await HyperX.Core.Chat.Acknowledge(
    session.AccessToken,
    channel.Id,
    sent.Sequence
);
sequence는 채널 안에서 증가하는 메시지 번호입니다. 재접속 후 마지막으로 처리한 sequenceafterSequence로 전달하면 놓친 메시지를 이어서 받을 수 있습니다.

Unity 구독

var subscription = HyperX.Core.Chat.Subscribe(
    session.AccessToken,
    channel.Id,
    message => Debug.Log(message.Body),
    error => Debug.LogWarning(error.Message),
    pollIntervalMilliseconds: 2000
);

// GameObject가 사라질 때 호출
subscription.Dispose();
채팅 화면이 열려 있을 때만 구독하고, 화면을 닫으면 Dispose를 호출해 불필요한 조회를 줄이세요.

신고와 운영 제어

await HyperX.Core.Chat.Report(
    session.AccessToken,
    channel.Id,
    messageId,
    reason: "spam"
);
운영자가 유저를 뮤트하거나 메시지를 숨기면 SDK 호출은 구조화된 오류를 받을 수 있습니다.
try
{
    await HyperX.Core.Chat.Send(session.AccessToken, channel.Id, "hello");
}
catch (HyperX.HyperXServerException ex)
    when (ex.ErrorCode == "CHAT_SENDER_MUTED")
{
    Debug.Log("채팅 제한 상태입니다.");
}