Sunucu Arası Mesajlaşma

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

Normalde, bir deneyimin içindeki kod sadece üzerinde çalıştığı sunucuları veya istemcileri etkileyebilir, ancak farklı sunuculardan birbiriyle iletişim kurmanızı istediğiniz durumlar olabilir, bunlar arasında:

  • Küresel Duyurular — "Bir kullanıcı özel bir öğeyi buldu!" gibi duyuruları tüm deneyim sunucularına gönderin.
  • Gerçek Zamanlı Sunucu Tarayıcısı — Bir sunucunun tüm katılımcı sunucularının bir listesini derleyin ve kimlerin olduğunu (her dakika güncellenir) ve listeyi maksimum 20 sunucuda görüntüleyin.

Class.MessagingService ile deneyiminizde kullanıcıların arasındaki mesajları destekleyebilirsiniz. Işınlanma Oyun Alanı örnek deneyimini kullanarak, kullanıcılar arasındaki mesajları nasıl oynatacağınızı önce uyguladığınızda görebilirsiniz. Son olarak, Buraya kull

Sunucu Arası Mesajlaşma Kurulumu

Çok sunucu mesajlarını etkinleştirmek için, bir konu oluşturmalısınız ki bu, birden fazla sunucudan erişilebilen özel bir mesaj kanalıdır. Bir konu oluşturduktan sonra, kullanıcıları konuya abone edebilir ve mesajları konuya yayınlayabilirsiniz.

Mesajları Almak İçin Kullanıcılara Abone Olmak

Kullanıcıları bir konuya abone etmek için MessagingService:SubscribeAsync() kullanın ve bir çağrı düğmesini belirtir ki mesajlar bu konuya gönderildiğinde tespit eder. Örneğin, aşağıdaki kod örneği tüm kullanıcıları bir FriendServerEvent konusuna abone eder ki mesajlar bu sunucuiçinde gönderildiğinde


local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local MESSAGING_TOPIC = "FriendServerEvent"
Players.PlayerAdded:Connect(function(player)
-- Başlığa abone ol
local subscribeSuccess, subscribeConnection = pcall(function()
return MessagingService:SubscribeAsync(MESSAGING_TOPIC, function(message)
print(message.Data)
end)
end)
if subscribeSuccess then
-- Oyuncu kökeni değişikliğinden itibaren aboneliği kaldır
player.AncestryChanged:Connect(function()
subscribeConnection:Disconnect()
end)
end
end)

Mesajları Paylaşma

Eşleştirmek için MessagingService:PublishAsync() kullanın. Örneğin, aşağıdaki kod örneği PublishAsync() kullanır para bir durum


local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local MESSAGING_TOPIC = "FriendServerEvent"
Players.PlayerAdded:Connect(function(player)
-- Konuya paylaş
local publishSuccess, publishResult = pcall(function()
local message = player.Name .. " joined server with 'JobId' of " .. game.JobId
MessagingService:PublishAsync(MESSAGING_TOPIC, message)
end)
if not publishSuccess then
print(publishResult)
end
end)