Spelideeën en functies

Je volgende functie

Gesprekken

Bewaarde berichten, expliciete abonnementen en begrensde moderatie.

SDK: developSpelerssessie vereist
Unity
Illustratie van Gesprekken
Je zichtbare resultaat

Twee bestaande sessies: projectkanaal openen, eenmaal verzenden, lezen en bewaard bericht melden. Vriendschap voor direct, actief lidmaatschap voor groep.

Video volgt

Voor deze stap is nog geen video. De handleiding en MCP-opdracht zijn al bruikbaar.

Gesprekken

Hetzelfde project voorbereiden

  1. Kies in het dashboard hetzelfde project als in de configuratie van je spel.

    Gesprekken →
  2. Voor het eerste verzoek is geen extra definitie nodig. Een leeg resultaat is geldig zolang bijpassende spelgegevens ontbreken.

    Twee bestaande sessies: projectkanaal openen, eenmaal verzenden, lezen en bewaard bericht melden. Vriendschap voor direct, actief lidmaatschap voor groep.

    PHP simpleServer retourneert 501 NOT_SUPPORTED voor alle Chatroutes.

Bouw deze functie

Je kunt de handleiding bekijken. Voor uitvoering heb je een actieve projectsleutel nodig. Project voorbereiden

SDK geïnstalleerd, projectconfiguratie geïmporteerd en speler aangemeld.

Dit SDK-voorbeeld gebruikt develop. Controleer of de benodigde API's in je geïnstalleerde SDK bestaan.

Voltooi de Quickstart-verbinding met de bedoelde speler. Roep ReadChannelSnapshot(channelId) expliciet aan via een knop of scèneactie. Alleen het bestand openen verstuurt geen verzoek.

C#
Assets/Scripts/ChatDemo.cs
horizOn-aanroep
1using UnityEngine;
2using PM.horizOn.Cloud.Manager;
3​
4// Existing imported SDK and authenticated player session required.
5// Call these methods explicitly from a player action; nothing runs on startup.
6public sealed class ChatDemo : MonoBehaviour
7{
8 public async void ReadChannelSnapshot(string channelId)
9 {
10 var user = UserManager.Instance.CurrentUser;
11 if (user == null || !user.IsValid()) return;
12 var result = await ChatManager.Instance.SyncChannel(user.UserId, channelId);
13 if (!result.IsSuccess) { Debug.LogWarning(result.ErrorCode); return; }
14 Debug.Log("Snapshot epoch: " + result.Data.channel.epoch);
15 foreach (var message in result.Data.messages) Debug.Log(message.text);
16 // This is the small authorized server window, not the full device history.
17 // A raw snapshot does not authorize or populate a managed realtime feed.
18 // WatchChannel waits for confirmed subscription; revocation hides the feed.
19 }
20​
21 public void ReadDeviceHistory(string channelId, string before = null)
22 {
23 var user = UserManager.Instance.CurrentUser;
24 if (user == null || !user.IsValid()) return;
25 var page = ChatManager.Instance.ReadLocalHistory(channelId, before, 50);
26 if (!page.IsSuccess) { Debug.LogWarning(page.ErrorCode); return; }
27 foreach (var message in page.Data.messages) Debug.Log(message.text);
28 // Continue only on an explicit action using page.Data.nextCursor.
29 // Local delivered history can outlive the small current server window.
30 // For send/report, import the SDK ChatExample and preserve its original
31 // operationId, issuedAt, channel and text before one explicit send.
32 // An uncertain outcome never permits a fresh identity or implicit retry.
33 }
34}
Volledig SDK-voorbeeld openen ↗

Twee spelers, één kanaal

Twee bestaande sessies: projectkanaal openen, eenmaal verzenden, lezen en bewaard bericht melden. Vriendschap voor direct, actief lidmaatschap voor groep.

Beheerde feed na abonnementsbevestiging: event/resync, één Sync en wijzigingsvlag. Geen polling of offlinevervanging; intrekken verbergt tekst.

Bewaar het exacte origineel per project/speler vóór verzending. Host/sessie begrenzen aanvragen. Vervang onzekere ID, tijd, tekst of revisie nooit.

Een operatie-404 bewijst geen mislukking. Bewaar origineel na timeout of OPERATION_EXPIRED; stem alleen af met het bijpassende ontvangstbewijs.

Herhaal oorspronkelijke IDs en reden. removed bevestigt herhaling; REPORT_EXPIRED maakt geen nieuwe melding.

PHP simpleServer retourneert 501 NOT_SUPPORTED voor alle Chatroutes.

Test je nieuwe functie.

Twee bestaande sessies: projectkanaal openen, eenmaal verzenden, lezen en bewaard bericht melden. Vriendschap voor direct, actief lidmaatschap voor groep.

Kies in het dashboard hetzelfde project als in de configuratie van je spel.

Eindpunten
  • GET/chat/limits
  • POST/chat/channels/open
  • POST/chat/channels/{channelId}/sync
  • POST/chat/channels/{channelId}/messages
  • GET/chat/operations/{operationId}
  • POST/chat/channels/{channelId}/messages/{messageId}/report
Alle eindpunten in de API-referentie
Onze suggestie voor je volgende stap

Geef elke ronde een topscore.

Sla de score na een ronde op en laat zien wie vooropstaat. Blijf je verbinding en de sessie van de speler gebruiken.