MessagingService

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Layanan
Tidak Direplikasi

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

Properti

Metode

PublishAsync

()
Hasil

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

topic: string

Menentukan di mana pesan dikirim.

Nilai Default: ""
message: Variant

Data yang harus dimasukkan dalam pesan.

Nilai Default: ""

Memberikan nilai

()

SubscribeAsync

Hasil

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

topic: string

Menentukan di mana untuk mendengarkan pesan.

Nilai Default: ""
callback: function

Fungsi yang dipanggil setiap kali pesan diterima.

Nilai Default: ""

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.

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)

Acara