MessagingService
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Layanan Pesan memungkinkan server dari pengalaman yang sama untuk berkomunikasi satu sama lain secara real time (kurang dari 1 detik) menggunakan topik.Topik adalah string yang didefinisikan oleh pengembang (1–80 karakter) yang digunakan oleh server untuk mengirim dan menerima pesan.
Pengiriman adalah upaya terbaik dan tidak dijamin. Pastikan untuk merancang pengalaman Anda sehingga kegagalan pengiriman tidak kritis.
Pesan Antar Server menjelajahi cara berkomunikasi antara server dengan lebih terperinci.
Jika Anda ingin menerbitkan pesan ad-hoc ke server permainan langsung, Anda dapat menggunakan API Cloud Terbuka.
Keterbatasan
Perhatikan bahwa batasan ini dapat berubah.
<th>Maksimum</th></tr></thead><tbody><tr><td><b>Ukuran pesan</b></td><td>1kB</td></tr><tr><td><b>Pesan dikirim per server game</b></td><td>600 + 240 \* (jumlah pemain di server game ini) per menit</td></tr><tr><td><b>Pesan yang diterima per topik</b></td><td>(40 + 80 \* jumlah server) per menit</td></tr><tr><td><b>Pesan diterima untuk seluruh permainan</b></td><td>(400 + 200 \* jumlah server) per menit</td></tr><tr><td><b>Langganan diizinkan per server game</b></td><td>20 + 8 \* (jumlah pemain di server game ini)</td></tr><tr><td><b>Berlangganan permintaan per server game</b></td><td>240 permintaan per menit</td></tr></tbody>
Membatasi |
---|
Rangkuman
Metode
Memanggil balasan yang disediakan setiap kali pesan dikirim ke topik.
Mulai mendengarkan topik yang diberikan.
Properti
Metode
PublishAsync
Fungsi ini mengirim pesan yang disediakan ke semua pelanggan ke topik, memicu panggilan balas terdaftar mereka untuk dipanggil.
Hasil sampai pesan diterima oleh backend.
Parameter
Menentukan di mana pesan dikirim.
Data yang harus dimasukkan dalam pesan.
Memberikan nilai
SubscribeAsync
Fungsi ini mendaftarkan panggilan balik untuk mulai mendengarkan topik yang diberikan.Panggilan balasan diaktifkan ketika topik menerima pesan.Ini dapat dipanggil beberapa kali untuk topik yang sama.
Panggil Kembali
Panggilan balik diaktifkan dengan satu argumen, tabel dengan entri berikut:
<th>Singkatan</th></tr></thead><tbody><tr><td><b>Data</b></td><td>Pengembang memberikan payload</td></tr><tr><td><b>Dikirim</b></td><td>Waktu Unix dalam detik di mana pesan dikirim</td></tr></tbody>
Bidang |
---|
Ini menghasilkan sampai langganan terdaftar dengan benar dan mengembalikan objek koneksi.
Untuk berhenti berlangganan, panggil Disconnect() pada objek yang dikembalikan.Setelah dipanggil, callback tidak boleh pernah diaktifkan.Membunuh skrip yang berisi koneksi juga menyebabkan koneksi dasar tidak berlangganan.
Lihat juga MessagingService:PublishAsync() yang mengirim pesan yang disediakan ke semua pelanggan untuk topik, memicu panggilan balas terdaftar mereka untuk dipanggil.
Parameter
Menentukan di mana untuk mendengarkan pesan.
Fungsi yang dipanggil setiap kali pesan diterima.
Memberikan nilai
Koneksi yang dapat digunakan untuk berhenti berlangganan dari topik.
Contoh Kode
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)