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)