消息服务 允许同一体验的服务器在实时时间(不超过 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
此函数将提供的消息发送到所有订阅者,并触发其注册的回调。
在后端接收消息之前提交。
参数
确定消息发送的地点。
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() ,将提供的消息发送到所有订阅者,触发他们注册的回调。
参数
返回
可用于从主题订阅取消的连接。
代码示例
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)