MessagingService
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Dịch vụ gửi tin nhắn cho phép các máy chủ cùng trải nghiệm giao tiếp với nhau trong thời gian thực (ít hơn 1 giây) bằng cách sử dụng chủ đề.Chủ đề là chuỗi được định nghĩa bởi nhà phát triển (1–80 ký tự) mà các máy chủ sử dụng để gửi và nhận tin nhắn.
Giao hàng là nỗ lực tốt nhất và không được đảm bảo. Hãy chắc chắn để kiến trúc trải nghiệm của bạn để các lỗi giao hàng không quan trọng.
Gửi tin nhắn giữa các máy chủ khám phá cách giao tiếp giữa các máy chủ chi tiết hơn.
Nếu bạn muốn xuất bản tin nhắn tạm thời lên các máy chủ trò chơi trực tiếp, bạn có thể sử dụng Mở API đám mây.
Hạn chế
Lưu ý rằng các giới hạn này có thể thay đổi.
<th>Tối đa</th></tr></thead><tbody><tr><td><b>Kích thước của tin nhắn</b></td><td>1kB</td></tr><tr><td><b>Tin nhắn gửi mỗi máy chủ trò chơi</b></td><td>600 + 240 \* (số người chơi trong máy chủ trò chơi này) mỗi phút</td></tr><tr><td><b>Tin nhận được theo mỗi chủ đề</b></td><td>(40 + 80 \* số máy chủ) mỗi phút</td></tr><tr><td><b>Tin nhắn nhận được cho toàn bộ trò chơi</b></td><td>(400 + 200 \* số máy chủ) mỗi phút</td></tr><tr><td><b>Đăng ký được phép cho mỗi máy chủ trò chơi</b></td><td>20 + 8 \* (số người chơi trong máy chủ này)</td></tr><tr><td><b>Yêu cầu đăng ký mỗi máy chủ trò chơi</b></td><td>240 yêu cầu mỗi phút</td></tr></tbody>
Giới hạn |
---|
Tóm Tắt
Phương Pháp
Gọi lại callback được cung cấp mỗi khi tin nhắn được đẩy vào chủ đề.
Bắt đầu lắng nghe chủ đề được cho.
Thuộc Tính
Phương Pháp
PublishAsync
Chức năng này gửi tin nhắn được cung cấp cho tất cả các đăng ký cho chủ đề, kích hoạt cuộc gọi trả lại đã đăng ký của họ.
Sản xuất cho đến khi tin nhắn được nhận bởi backend.
Tham Số
Xác định nơi tin nhắn được khoản
Dữ liệu cần bao gồm trong tin nhắn.
Lợi Nhuận
SubscribeAsync
Chức năng này đăng ký một cuộc gọi lại để bắt đầu lắng nghe chủ đề đã cho.Cuộc gọi trả lại được kích hoạt khi một chủ đề nhận được tin nhắn.Nó có thể được gọi nhiều lần cho cùng một chủ đề.
Gọi lại
Cuộc gọi trả lại được kích hoạt với một tham số duy nhất, một bảng với các thành phần sau:
<th>Tổng quát</th></tr></thead><tbody><tr><td><b>Dữ liệu</b></td><td>Nhà phát triển cung cấp payload</td></tr><tr><td><b>Đã gửi</b></td><td>Thời gian Unix bằng giây tại đó tin nhắn được gửi</td></tr></tbody>
Trường |
---|
Nó cho đến khi đăng ký đăng ký được đăng ký đúng cách và trả về một đối tượng kết nối.
Để huỷ đăng ký, gọi Disconnect() trên đối tượng trả về.Một khi được gọi, callback không bao giờ nên được gọi.Giết kịch bản chứa các kết nối cũng gây ra việc kết nối cơ sở bị huỷ đăng ký.
Xem thêm MessagingService:PublishAsync() được gửi tin nhắn được cung cấp cho tất cả các đăng ký cho chủ đề, kích hoạt cuộc gọi trả lời đã đăng ký của họ.
Tham Số
Xác định nơi để lắng nghe tin nhắn.
Chức năng được gọi mỗi khi nhận được một tin nhắn.
Lợi Nhuận
Kết nối có thể được sử dụng để hủy đăng ký khỏi chủ đề.
Mẫu mã
This example demonstrates how to use MessagingService:SubscribeAsync() to listen to a topic for cross-server chat within a game universe.
When a player joins, the example subscribes to the topic player-<player.UserId>. When a message is sent with this topic, the connected callback executes and prints Received message for <player.Name">. It also disconnects the connection when the player's ancestry changes.
In order for this to work as expected it must be placed in a server Script.
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)