MessagingService

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

无法创建
服务
未复制

消息服务 允许同一体验的服务器在实时时间(不超过 1 秒)使用主题与之间通信。主题是由服务器定义的字符串(1-80个字符),它们服务器使用来发送和接收消息。

交付是最佳努力,不是保证。请确保您的体验架构,以确保交付失败不是致命。

跨服务器通信 探索如何在更大的细节上沟通服务器之间。

如果您想要发布临时消息到游戏服务器,您可以使用开放云 API

限制

注意这些限制可能会改变。


<tbody>
<tr>
<td>
<b>消息的大小</b>
</td>
<td>
1kB
</td>
</tr>
<tr>
<td>
<b>根据游戏服务器发送消息</b>
</td>
<td>
600 + 240 \* (此游戏服务器上的玩家数量) 每分钟
</td>
</tr>
<tr>
<td>
<b>根据主题收到的消息</b>
</td>
<td>
(40 + 80 \* 服务器数量) 每分钟
</td>
</tr>
<tr>
<td>
<b>为整个游戏接受的消息</b>
</td>
<td>
(400 + 200 \* 服务器数量) 每分钟
</td>
</tr>
<tr>
<td>
<b>允许每个游戏服务器的订阅</b>
</td>
<td>
20 + 8 \* (此游戏服务器中的玩家数量)
</td>
</tr>
<tr>
<td>
<b>按游戏服务器订阅请求</b>
</td>
<td>
每分钟 240 个请求
</td>
</tr>
</tbody>
限制最大

概要

方法

属性

方法

PublishAsync

void
暂停

此函数将提供的消息发送到所有订阅者,并触发其注册的回调。

在后端接收消息之前提交。

参数

topic: string

确定消息发送的地点。

message: Variant

包含在消信息中的数据。


返回

void

SubscribeAsync

暂停

此函数注册一个回调来开始听取指定的主题。当主题接收消信息时,回调会被调用。它可以多次为同一主题调用。

回调

调用单个参数,包含以下表示:


<tbody>
<tr>
<td>
<b>数据</b>
</td>
<td>
开发者提供的货件
</td>
</tr>
<tr>
<td>
<b>已发送</b>
</td>
<td>
在哪些秒内发送消息
</td>
</tr>
</tbody>
概要

它会生成直到订阅注册为正确,并且返回一个连接对象。

要取消订阅,请在返回的对象上调用 Disconnect() 。一旦调用,调用回调永远不会被调用。杀死包含连接的脚本也会导致基础连接被取消。

还参阅 MessagingService:PublishAsync() ,将提供的消息发送到所有订阅者,触发他们注册的回调。

参数

topic: string

确定要在哪里听取消息。

callback: function

接收到消息时会被调用的函数。


返回

可用于从主题订阅取消的连接。

代码示例

Subscribing to Cross Server Messages

local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
--subscribe to the topic
local topic = "player-" .. player.UserId
local connection = MessagingService:SubscribeAsync(topic, function(message)
print("Received message for", player.Name, message.Data)
end)
player.AncestryChanged:Connect(function()
-- unsubscribe from the topic
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

活动