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

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

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

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

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

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

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

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

ใช้ MessagingService:SubscribeAsync() เพื่อสมัครสมาชิกผู้ใช้กับหัวข้อและระบุฟังก์ชันการเรียกกลับที่ตรวจจับข้อความที่ถูกเผยแพร่ไปยังหัวข้อนั้น ตัวอย่างเช่น รหัสตัวอย่างต่อไปนี้ทำการสมัครสมาชิกผู้ใช้ทั้งหมดกับหัวข้อ FriendServerEvent ที่รับข้อความเมื่อผู้ใช้คนใดถูกส่งไปยังเซิร์ฟเวอร์อื่น


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() เพื่อจับคู่กับหัวข้อเฉพาะและเผยแพร่ข้อความไปยังหัวข้อนั้น ตัวอย่างเช่น รหัสตัวอย่างต่อไปนี้ใช้ PublishAsync() เพื่อแจ้งผู้ใช้ทุกคนเมื่อผู้ใช้เข้าร่วมเซิร์ฟเวอร์ใหม่ รวมถึง Player.Name ที่แสดงถึงชื่อที่แสดงของผู้ใช้และ JobId ซึ่งเป็นรหัสประจำตัวที่ไม่ซ้ำสำหรับอินสแตนซ์เซิร์ฟเวอร์เกมที่กำลังทำงานอยู่


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 .. " เข้าร่วมเซิร์ฟเวอร์ที่มี 'JobId' ของ " .. game.JobId
MessagingService:PublishAsync(MESSAGING_TOPIC, message)
end)
if not publishSuccess then
print(publishResult)
end
end)
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ