Query Channel List
Explains two methods for querying the channel list.
WebSocket Method
Query the list of currently available channels via WebSocket.
Method Information
| Item | Content |
|---|---|
| Method | ChatManager.Instance.GetChannels() |
| Callback | OnChannels(ChatChannelInfo[] channels) |
ChatChannelInfo
| Field | Type | Description |
|---|---|---|
| channel | string | Channel name |
| count | int | Number of users |
Usage Example
using UnityEngine;
public class ChatExample : MonoBehaviour, IChatListener
{
public void GetChannels()
{
ChatManager.Instance.GetChannels();
}
public void OnChannels(ChatChannelInfo[] channels)
{
foreach (var channel in channels)
Debug.Log($"Channel: {channel.channel}, Users: {channel.count}");
}
// ... Other IChatListener method implementations
}
REST API Method
Available Before Socket Connection
The REST API method can be used before WebSocket connection. Use this method if you want to query the channel list before connecting to the chat server.
URL Verification
This API uses the service-api.playnanoo.com domain.
API Information
- URL:
https://service-api.playnanoo.com/chat/v20221201/channels - Method:
GET - Authentication Required: No
Request Parameters
The Req class inherits from DeviceInfo.
No additional parameters required.
Response Data
Res
| Field | Type | Description |
|---|---|---|
| Items | List<ChatChannelInfo> | Channel list |
ChatChannelInfo
| Field | Type | Description |
|---|---|---|
| channel | string | Channel name |
| count | int | Number of users |
Unity C# Implementation
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Networking;
public class Channles
{
static string path = "https://service-api.playnanoo.com/chat/v20221201/channels";
[Serializable]
public class Req : DeviceInfo
{
public IEnumerator Send(Action<Res> onSuccess, Action<BaseResponse> onError)
{
yield return HttpClient.Send<Req, Res>(
UnityWebRequest.kHttpVerbGET,
path,
requireToken: false,
body: this,
onSuccess: onSuccess,
onError: onError
);
}
}
[Serializable]
public class Res : BaseResponse
{
public List<ChatChannelInfo> Items;
}
[Serializable]
public class ChatChannelInfo
{
public string channel;
public int count;
}
}
Usage Example
using UnityEngine;
public class ChatExample : MonoBehaviour
{
public void GetChannelList()
{
Channles.Req req = new Channles.Req();
StartCoroutine(req.Send(
onSuccess: res =>
{
foreach(Channles.ChatChannelInfo item in res.Items)
{
Debug.Log($"Channel : {item.channel}");
Debug.Log($"Count : {item.count}");
}
},
onError: (error) =>
{
Debug.LogError($"GetChannelList failed: [{error.ErrorCode}] {error.Message}");
}
));
}
}