消息功能

消息功能

Game Chat 提供的消息功能包括支持用户间有效沟通的多种服务。该平台适用于个人对话以及群组对话,使发送和接收消息的过程变得简单快捷。以下是 Game Chat 的主要消息功能及其特点:

1. 即时消息

  • 实时沟通:用户可以实时发送和接收消息,从而将沟通延迟降至最低。

  • 多设备支持:用户可以在智能手机、平板电脑、PC 等多种设备上进行消息的发送和接收。

2. 群组聊天

  • 多个参与者:用户可以创建多个参与者的群组聊天,以便共享信息并简化团队内部的沟通。

  • 频道管理:管理员可以通过群组聊天添加或删除成员,并调整群组的设置。

3. 文件共享

  • 支持多种文件格式:可以通过聊天轻松共享文本、图片、视频、文档等多种格式的文件。

  • 安全的文件存储:Ncloud Chat 将文件保存在客户拥有的 Object Storage 中,从而防止信息外泄。

4. 消息搜索

  • 关键词搜索:在聊天中使用特定关键词来搜索过去的对话内容。

  • 高级过滤选项:可以应用日期、参与者、文件类型等各种过滤器,以快速找到所需的消息。

5. 通知与通知调整

  • 推送通知:当有新消息或重要更新时,会向用户发送通知,以防止信息遗漏。

  • 通知设置:用户可以调整通知的类型和频率,以便以所需的方式接收信息。

6. 安全与隐私保护

  • 数据加密:所有消息在传输和存储过程中都进行加密,以防止数据泄露。

  • 隐私保护:用户的个人信息和对话内容受到严格保护,未经用户同意不会向第三方公开。

Game Chat 的消息功能使用户的沟通变得顺畅和高效,在工作和日常生活中发挥了重要作用。这些功能帮助用户更轻松地进行沟通,并在增强团队合作方面做出了巨大贡献。

消息传递

创建并加入频道后,可以通过以下方式发送新消息。

const message = 'Hello !!!';
await nc.sendMessage(
        channelId: CHANNEL_ID, 
        type:"text", 
        content: message
);


// 回复消息时
await nc.sendMessage(
        channelId: CHANNEL_ID, 
        type:"text", 
        content: message, 
        parentMessageId: [MESSAGE_ID]
        );

// 如果需要对消息进行自动翻译
await nc.sendMessage(
        channelId: CHANNEL_ID, 
        type:"text", 
        content: message, 
        translate: true
        );

// 在新消息中,通过以下方式补充父消息的内容,并传递 parent_message。
{
    "id": "message_id",
    "text": "Message",
    "parent_message_id": "first_message_id",
    "parent_message": { 
        "id": "message_id", 
        "text": "message_name",
        "sender" : {
            "id" : "Sender",
             "name" : "Sender Nickname",
             "profile" : "profile url"
        }
    }
}

备注

消息以 JSON 格式发送/接收,可以使用各种自定义值。

Hashtable messageArray = new Hashtable
{
    { "channel_id", "channelId" },
    { "state", 1 },
    { "desc" , "Desc" }
};
// 将消息转换为普通文本。
const jsonString = JsonConvert.SerializeObject(messageArray);
// 将接收到的消息转换为数组。
Hashtable hashtable = JsonConvert.DeserializeObject<Hashtable>(jsonString);
IDTypeDescription

CHANNEL_ID

string

频道 ID

type

string

发送的消息类型(text, image)

MESSAGE

string

发送消息时,可以使用文本或 JSON 字符串以实现多种用途。

MENTIONS

array

提及的用户 ID

  • 使用 Express Message Express Message 函数专门用于快速发送消息。它跳过所有可能导致时间延迟的部分,使消息发送速度比常规 sendMessage 快 10 倍。其与常规 sendMessage 的区别如下:

FunctionDescription过滤屏蔽翻译

sendMessage

常规消息发送

O

O

O

sendExpressMessage

快速消息发送

X

X

X

可以用于游戏中的实时 PvP 制作或任何需要高速广播的服务。

文件上传

  • 您可以将文件发送到特定的频道。

  • 在大屏幕中选择设置 > 安全 > 允许的文件类型,仅允许上传被允许的文件类型。

await nc.sendFile([CHANNEL_ID],file);
IDTypeDescription

CHANNEL_ID

string

频道 ID

file

string

文件信息

备注

  • 必须启用对象存储功能。

  • 仅在与对象存储服务集成后可以使用。

  • 在上传时,请在大屏幕项目设置 > 安全设置中配置上传类型和上传大小等设置。

  • 支持的文件类型:支持所有常见类型,包括图像、视频、文档、压缩文件等。如需支持额外的扩展名,请通过“cs@nbase.io”进行询问,我们会在安全审查后添加支持。

  • 使用文件链接时,端点地址为 https://apps.ncloudchat.naverncp.com。 例如: https://apps.ncloudchat.naverncp.com/archive/[archiveId]

消息信息

  • Message Data Class

IDTypeDescription

id

string

ID (unique)

message_id

string

消息 ID

sort_id

string

消息排序 ID

message_type

string

消息类型

sender.id

string

发件人 ID

sender.name

string

发件人姓名

sender.profile

string

发件人头像

metions

string

提及列表

metions_everyone

string

是否全体提及

content

string

消息内容

created_at

string

创建日期

sended_at

string

发送日期

单条消息信息

可以获取单条消息的详细信息。

NBaseSDK.Message message = await nc.getMessage([CHANNEL_ID], [MESSAGE_ID]);

全部消息信息

可以获取所有消息的详细信息。

Hashtable filter = new Hashtable
{
    { "channel_id", [CHANNEL_ID] }
};
Hashtable sort = new Hashtable
{
    { "sort_id", -1 }
};
Hashtable option = new Hashtable
{
    { "offset", 0 },
    { "per_page", 10 }
};
var messages = await nc.getMessages(filter, sort, option);
if (messages != null)
    {
            foreach (var message in messages.edges)
        {
            string id = message.Node.message_id.ToString();
            Console.WriteLine("[CloudChatSample] id={0}", id);
        }
    }
  • Parameters

IDTypeDescriptionRequired

filter

object

可以对所有字段进行搜索。

O

sort

object

定义要排序字段的过滤器

X

option

object

如有可选项,请参阅下方参考内容。

X

  • Options

IDTypeDescription

offset

number

起始 offset

per_page

number

返回的数量(最多 100 个)

未读消息

返回未读消息的数量。 首先通过 markRead 传递最后一条已读消息的信息。

nc.markRead([CHANNEL_ID], new NBaseSDK.Mark 
{
    user_id = USER_ID, 
    message_id = MESSAGE_ID,
    sort_id = SORT_ID
});
// 返回标记之后的所有未读消息的总数。
var unread = nc.unreadCount([CHANNEL_ID]);
IDTypeDescription

USER_ID

string

消息中包含的 user_id 输入

MESSAGE_ID

string

消息中包含的 message_id 输入

SORT_ID

string

消息中包含的 sort_id 输入

消息删除

可以删除我在该频道内发送的消息。

await nc.deleteMessage([CHANNEL_ID], [MESSAGE_ID]);
  • Parameters

IDTypeDescription

CHANNEL_ID

string

频道 ID

MESSAGE_ID

string

消息 ID

Last updated