MessagingService

แสดงที่เลิกใช้งานแล้ว

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

ไม่สามารถสร้าง
บริการ
ไม่ซ้ำ

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

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

การส่งข้อความระหว่างเซิร์ฟเวอร์ สำรวจวิธีการสื่อสารระหว่างเซิร์ฟเวอร์ในรายละเอียดมากขึ้น

หากต้องการเผยแพร่ข้อความชั่วคราวไปยังเซิร์ฟเวอร์เกมสด คุณสามารถใช้ เปิด API เมฆเปิด

ข้อจํากัด

โปรดทราบว่าข้อจํากัดเหล่านี้อาจมีการเปลี่ยนแปลง


<th>สูงสุด</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<b>ขนาดของข้อความ</b>
</td>
<td>
1kB
</td>
</tr>
<tr>
<td>
<b>ข้อความที่ส่งต่อเซิร์ฟเวอร์เกม</b>
</td>
<td>
600 + 240 \* (จํานวนผู้เล่นในเซิร์ฟเวอร์เกมนี้) ต่อนาที
</td>
</tr>
<tr>
<td>
<b>ข้อความที่ได้รับต่อหัวข้อ</b>
</td>
<td>
(40 + 80 \* จํานวนเซิร์ฟเวอร์) ต่อนาที
</td>
</tr>
<tr>
<td>
<b>ข้อความที่ได้รับสําหรับทั้งเกม</b>
</td>
<td>
(400 + 200 \* จํานวนเซิร์ฟเวอร์) ต่อนาที
</td>
</tr>
<tr>
<td>
<b>สมัครสมาชิกที่อนุญาตต่อเซิร์ฟเวอร์เกม</b>
</td>
<td>
20 + 8 \* (จํานวนผู้เล่นในเซิร์ฟเวอร์เกมนี้)
</td>
</tr>
<tr>
<td>
<b>สมัครคำขอต่อเซิร์ฟเวอร์เกม</b>
</td>
<td>
240 คำขอต่อนาที
</td>
</tr>
</tbody>
จํากัด

สรุป

วิธีการ

  • PublishAsync(topic : string,message : Variant):()
    ผลตอบแทน

    เรียกการโทรกลับที่จัดหาเมื่อมีการส่งข้อความไปยังหัวข้อทุกครั้ง

  • ผลตอบแทน

    เริ่มฟังหัวข้อที่กำหนดแล้ว

คุณสมบัติ

วิธีการ

PublishAsync

()
ผลตอบแทน

ฟังก์ชันนี้ส่งข้อความที่ให้ไว้ไปยังผู้สมัครรับข้อมูลทั้งหมดสำหรับหัวข้อนั้น ทำให้การโทรกลับที่ลงทะเบียนไว้ถูกเรียกใช้

ให้จนกว่าข้อความจะได้รับโดยแบ็คเอนด์

พารามิเตอร์

topic: string

กำหนดที่ที่ข้อความถูกส่ง

ค่าเริ่มต้น: ""
message: Variant

ข้อมูลที่จะรวมอยู่ในข้อความ

ค่าเริ่มต้น: ""

ส่งค่ากลับ

()

SubscribeAsync

ผลตอบแทน

ฟังก์ชันนี้ลงทะเบียนการเรียกกลับเพื่อเริ่มฟังหัวข้อที่กำหนดไว้การเรียกคืนจะถูกเรียกเมื่อหัวข้อได้รับข้อความสามารถเรียกได้หลายครั้งสำหรับหัวข้อเดียวกัน

การโทรกลับ

การเรียกคืนจะถูกเรียกด้วยอาร์กิวเมนต์เดียวโดยมีตารางที่มีรายการต่อไปนี้:


<th>สรุป</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<b>ข้อมูล</b>
</td>
<td>
ผู้พัฒนาจัดหาเพย์โหลด
</td>
</tr>
<tr>
<td>
<b>ส่ง</b>
</td>
<td>
เวลา Unix ในวินาทีที่ข้อความถูกส่ง
</td>
</tr>
</tbody>
ฟิลด์

มันให้จนกว่าสมัครจะได้รับการลงทะเบียนอย่างถูกต้องและส่งคืนวัตถุการเชื่อมต่อ

เพื่อยกเลิกการสมัครรับข้อมูล โทร Disconnect() ไปที่วัตถุที่ส่งคืนเมื่อเรียกแล้ว คอลเลกชันการโทรกลับไม่ควรถูกเรียกใช้การฆ่าสคริปที่มีการเชื่อมต่อยังทำให้การเชื่อมต่อพื้นฐานถูกยกเลิกการสมัครสมาชิก

ดูเพิ่มเติม MessagingService:PublishAsync() ซึ่งส่งข้อความที่ให้ไว้ไปยังผู้สมัครรับข้อมูลทั้งหมดสำหรับหัวข้อนั้น ทำให้การโทรกลับที่ลงทะเบียนไว้ถูกเรียกใช้

พารามิเตอร์

topic: string

กำหนดว่าจะฟังข้อความที่ไหน

ค่าเริ่มต้น: ""
callback: function

ฟังก์ชันที่จะถูกเรียกใช้เมื่อได้รับข้อความ

ค่าเริ่มต้น: ""

ส่งค่ากลับ

การเชื่อมต่อที่สามารถใช้เพื่อยกเลิกการสมัครรับข้อมูลจากหัวข้อ

ตัวอย่างโค้ด

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)

อีเวนต์