채팅 관리

채팅 관리

실시간 메시지를 교환하세요. 이전 기록은 클라이언트에 남습니다.

무료로 시작하기

채팅 관리

실시간 메시지를 교환하세요. 이전 기록은 클라이언트에 남습니다.

SDK 및 REST

Unity, Godot, Unreal과 통합하거나 REST 인터페이스를 사용하세요.

프로젝트 대시보드

프로젝트에서 각 기능을 설정하고 현재 데이터를 관리하세요.

빠른 통합

빠른 통합

quickstart.dashboard.videos.chat
동영상 준비 중

quickstart.videoSummaries.chat

빠른 통합
Unity (C#)
using UnityEngine;
using PM.horizOn.Cloud.Manager;

// Existing imported SDK and authenticated player session required.
// Call these methods explicitly from a player action; nothing runs on startup.
public sealed class ChatDemo : MonoBehaviour
{
    public async void ReadChannelSnapshot(string channelId)
    {
        var user = UserManager.Instance.CurrentUser;
        if (user == null || !user.IsValid()) return;
        var result = await ChatManager.Instance.SyncChannel(user.UserId, channelId);
        if (!result.IsSuccess) { Debug.LogWarning(result.ErrorCode); return; }
        Debug.Log("Snapshot epoch: " + result.Data.channel.epoch);
        foreach (var message in result.Data.messages) Debug.Log(message.text);
        // This is the small authorized server window, not the full device history.
        // A raw snapshot does not authorize or populate a managed realtime feed.
        // WatchChannel waits for confirmed subscription; revocation hides the feed.
    }

    public void ReadDeviceHistory(string channelId, string before = null)
    {
        var user = UserManager.Instance.CurrentUser;
        if (user == null || !user.IsValid()) return;
        var page = ChatManager.Instance.ReadLocalHistory(channelId, before, 50);
        if (!page.IsSuccess) { Debug.LogWarning(page.ErrorCode); return; }
        foreach (var message in page.Data.messages) Debug.Log(message.text);
        // Continue only on an explicit action using page.Data.nextCursor.
        // Local delivered history can outlive the small current server window.
        // For send/report, import the SDK ChatExample and preserve its original
        // operationId, issuedAt, channel and text before one explicit send.
        // An uncertain outcome never permits a fresh identity or implicit retry.
    }
}

SDK는 수신한 기록을 서버의 실시간 창과 별도로 기기에 저장합니다. 계정을 바꾸면 숨겨지며, 명시적으로 로컬에서 삭제해야만 지워집니다. 퀵스타트 보기

자주 묻는 질문

자주 묻는 질문

통합할 준비가 되셨나요?

오늘부터 horizOn으로 게임 백엔드를 구축하세요. 무료 플랜 포함.