MessagingService

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz
Hizmet
Çoğaltılmamış

Mesajlaşma Hizmeti aynı deneyime sahip sunucuların gerçek zamanlı olarak birbirleriyle iletişim kurmasına izin verir (1 saniyeden az) konular kullanarak.Konular, sunucuların mesaj göndermek ve almak için kullandığı geliştirici tanımlı dize (1–80 karakter) dir.

Teslimat en iyi çabaydır ve garanti edilmez. Deneyiminizi yapılandırmak suretiyle teslimat başarısızlıklarının kritik olmadığından emin olun.

Arası-Sunucu Mesajlaşma daha ayrıntılı bir şekilde sunucular arasında nasıl iletişim kurulacağını araştırır.

Canlı oyun sunucularına ad-hoc mesajlar yayınlamak istiyorsanız, Açık Bulut API'lerini kullanabilirsiniz.

Sınırlar

Bu sınırların değişebileceğini unutmayın.


<th>En fazla</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<b>Mesajın boyutu</b>
</td>
<td>
1kB
</td>
</tr>
<tr>
<td>
<b>Oyun sunucusu başına gönderilen mesajlar</b>
</td>
<td>
dakika başına 600 + 240 \* (bu oyun sunucusundaki oyuncu sayısı)
</td>
</tr>
<tr>
<td>
<b>Konu başına alınan mesajlar</b>
</td>
<td>
(40 + 80 \* sunucu sayısı) dakika başı
</td>
</tr>
<tr>
<td>
<b>Tüm oyun için alınan mesajlar</b>
</td>
<td>
(400 + 200 \* sunucu sayısı) dakika başı
</td>
</tr>
<tr>
<td>
<b>Oyun sunucusu başına abonelikler izinlidir</b>
</td>
<td>
20 + 8 \* (bu oyun sunucusundaki oyuncu sayısı)
</td>
</tr>
<tr>
<td>
<b>Oyun sunucusuna bağlı abonelik istekleri</b>
</td>
<td>
dakika başına 240 istek
</td>
</tr>
</tbody>
Sınırla

Özellikler

Yöntemler

PublishAsync

()
Bekletir

Bu işlev, konuyla ilgili sağlanan mesajı tüm abonelere gönderir ve kayıtlı geri çağrılarının çağrılmasını tetikler.

Mesaj arka plandan alınana kadar verilir.

Parametreler

topic: string

Mesajın nereye gönderileceğini belirler.

Varsayılan değer: ""
message: Variant

Mesaja dahil edilecek veriler.

Varsayılan değer: ""

Dönüşler

()

SubscribeAsync

Bekletir

Bu işlev, verilen konuyu dinlemeye başlamak için bir geri çağrı kaydeder.Geri çağrı, bir konu bir mesaj aldığında çağrılır.Aynı konu için birden fazla kez aynı konu için çağrılabilir.

Geri çağırma

Geri çağrı tek bir argümanla çağrılır ve aşağıdaki girişleri olan bir tablo ile:


<th>Özet</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<b>Veri</b>
</td>
<td>
Geliştirici yük sağladı
</td>
</tr>
<tr>
<td>
<b>Gönderildi</b>
</td>
<td>
Mesaj gönderildiğinde bir saniye içinde Unix saati
</td>
</tr>
</tbody>
Saha

Abonelik doğru kaydedilana kadar verir ve bir bağlantı nesnesi döndürür.

Abonelikten çıkmak için, döndürülen nesneye Disconnect() çağrı yapın.Bir kez çağrıldıktan sonra, geri çağrı asla yapılmamalıdır.Bağlantıları içeren kodu öldürmek ayrıca temel bağlantının aboneliğinin iptal edilmesine neden olur.

Ayrıca bakın MessagingService:PublishAsync() , sağlanan mesajı konuya tüm abonelere gönderen ve kayıtlı geri çağrılarının çağrılmasını tetikleyen, kayıtlı geri çağrılarının çağrılmasını tetikleyen.

Parametreler

topic: string

Mesajların dinleneceği yeri belirler.

Varsayılan değer: ""
callback: function

Mesaj alındığında herhangi bir işlev çağrılır. Function to be invoked whenever a message is received.

Varsayılan değer: ""

Dönüşler

Konudan çıkmak için kullanılabilecek bağlantı.

Kod Örnekleri

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)

Etkinlikler