การส่งข้อความระหว่างเซิร์ฟเวอร์

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ตามปกติ, รหัสภายในประสบการณ์สามารถมีผลกับเซิร์ฟเวอร์หรือลูกค้าที่มันทำงานบน, แต่อาจมีสถานการณ์ที่คุณต้องการให้เซิร์ฟเวอร์ต่างๆ สื่อสารกัน, รวมทั้ง:

  • ประกาศทั่วไปของเกม — ส่งประกาศเช่น "ผู้ใช้พบไอเท็มพิเศษ!" ให้กับผู้ใช้ทั้งหมดของประสบการณ์
  • เว็บไซต์เซิร์ฟเวอร์แบบเรียลไทม์ — คอมไพล์รายการของเซิร์ฟเวอร์ทั้งหมดและผู้ที่อยู่ในนั้น (อัปเดตทุกนาที) และแสดงรายการบนเว็นไซต์สูงสุด 20 เซิร์ฟเวอร์

คุณสามารถสนับสนุนการส่งข้อความระหว่างเซิร์ฟเวอร์ได้ในประสบการณ์ของคุณโดยใช้ MessagingService คุณยังสามารถใช้ประสบการณ์ Teleportation Playground เพื่อดูวิธีการทำงาน

การติดต่อระหว่างเซิร์ฟเวอร์

เพื่อเปิดใช้งานการส่งข้อความระหว่างเซิร์ฟเวอร์คุณต้องการติดตั้ง หัวข้อ ซึ่งเป็นช่องข้อความที่ปรับแต่งซึ่งสามารถเข้าถึงได้จากหลายเซิร์ฟเวอร์ หลังจาก

สมัครผู้ใช้เพื่อรับข้อความ

ใช้ MessagingService:SubscribeAsync() เซิร์ฟเวอร์ตัวอย่างเช่น ตัวอย่างข้อมูลต่อไปนี้สมั


local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local MESSAGING_TOPIC = "FriendServerEvent"
Players.PlayerAdded:Connect(function(player)
-- สมัครรับหัวข้อ
local subscribeSuccess, subscribeConnection = pcall(function()
return MessagingService:SubscribeAsync(MESSAGING_TOPIC, function(message)
print(message.Data)
end)
end)
if subscribeSuccess then
-- ยกเลิกการรับข้อมูลจากหัวข้อเมื่อเปลี่ยนแปลงการต้อนรับ
player.AncestryChanged:Connect(function()
subscribeConnection:Disconnect()
end)
end
end)

เผยแพร่ข้อความ

ใช้ MessagingService:PublishAsync() เพื่อจับคู่หัวข้อที่เฉพาะเจาะจงและเผยแพร่ข้อความไปยังมัน ตัวอย่างข้อมูลต


local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local MESSAGING_TOPIC = "FriendServerEvent"
Players.PlayerAdded:Connect(function(player)
-- เผยแพร่ไปยังหัวข้อ
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)