MessagingService

Hiển Thị Bản Đã Lỗi Thời

*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.

Không Thể Tạo
Dịch Vụ
Không Sao Chép

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

Thuộc Tính

Phương Pháp

PublishAsync

()
Sinh Lợi

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ố

topic: string

Xác định nơi tin nhắn được khoản

Giá Trị Mặc Định: ""
message: Variant

Dữ liệu cần bao gồm trong tin nhắn.

Giá Trị Mặc Định: ""

Lợi Nhuận

()

SubscribeAsync

Sinh Lợi

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ố

topic: string

Xác định nơi để lắng nghe tin nhắn.

Giá Trị Mặc Định: ""
callback: function

Chức năng được gọi mỗi khi nhận được một tin nhắn.

Giá Trị Mặc Định: ""

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.

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)

Sự Kiện