MessagingService

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Brak możliwości tworzenia
Usługa
Bez replikacji

Usługa wysyłania wiadomości pozwala serwerom tego samego doświadczenia komunikować się ze sobą w czasie rzeczywistym (mniej niż 1 sekundę) za pomocą tematów.Tematy to struny zdefiniowane przez programistę (od 1 do 80 znaków), których serwery używają do wysyłania i odbierania wiadomości.

Dostawa jest najlepszym wysiłkiem i nie jest gwarantowana. Upewnij się, że zaprojektujesz swoją doświadczenie, aby awarie dostawy nie były krytyczne.

Wysyłanie międzyserwerowe bada, jak komunikować się między serwerami w większym szczególe.

Jeśli chcesz opublikować wiadomości ad-hoc na żywych serwerach gier, możesz użyć Otwartych API chmury.

Ograniczenia

Zwróć uwagę, że te ograniczenia podlegają zmianie.


<th>Maksymalny</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<b>Rozmiar wiadomości</b>
</td>
<td>
1kB
</td>
</tr>
<tr>
<td>
<b>Wysłane wiadomości na serwerze gry</b>
</td>
<td>
600 + 240\* (liczba graczy na tym serwerze gier) na minutę
</td>
</tr>
<tr>
<td>
<b>Otrzymane wiadomości na temat</b>
</td>
<td>
(40 + 80 \* liczba serwerów) na minutę
</td>
</tr>
<tr>
<td>
<b>Otrzymane wiadomości na całą grę</b>
</td>
<td>
(400 + 200 \* liczba serwerów) na minutę
</td>
</tr>
<tr>
<td>
<b>Subskrypcje dozwolone na serwerze gry</b>
</td>
<td>
20 + 8 \* (liczba graczy na tym serwerze gry)
</td>
</tr>
<tr>
<td>
<b>Subskrybuj prośby o subskrypcję na serwerze gry</b>
</td>
<td>
240 żądań na minutę
</td>
</tr>
</tbody>
Ogranicz

Podsumowanie

Metody

Właściwości

Metody

PublishAsync

()
Wynik

Funkcja ta wysyła dostarczoną wiadomość do wszystkich subskrybentów tematu, uruchamiając ich zarejestrowane wezwania.

Poddaje się, dopóki wiadomość nie zostanie otrzymana przez tylne końce.

Parametry

topic: string

Określa, gdzie wysłana jest wiadomość.

Wartość domyślna: ""
message: Variant

Dane do włączenia do wiadomość.

Wartość domyślna: ""

Zwroty

()

SubscribeAsync

Wynik

Funkcja ta rejestruje powiadomienie o rozpoczęciu słuchania danego tematu.Wezwanie powrotne jest uruchamiane, gdy temat otrzymuje wiadomość.Można wezwać wielokrotnie ten sam temat.

Wezwanie powrotne

Wezwanie powrotne jest uruchamiane z jednym argumentem, tablicą z następującymi wpisami:


<th>Podsumowanie</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<b>Dane</b>
</td>
<td>
Deweloper dostarczył ładunek
</td>
</tr>
<tr>
<td>
<b>Wysłano</b>
</td>
<td>
Czas Unix w sekundach, w których wysłano wiadomość
</td>
</tr>
</tbody>
Obszar

Wydaje się, dopóki subskrypcja nie zostanie prawidłowo zarejestrowana i zwraca obiekt połączenia.

Aby się wypisać, zadzwoń Disconnect() na powracający obiekt.Po wezwaniu powrót nie powinien być nigdy wzywany.Zabicie skryptu zawierającego połączenia powoduje również, że podstawowe połączenie zostanie odsubskrybowane.

Zobacz także MessagingService:PublishAsync(), który wysyła dostarczoną wiadomość do wszystkich subskrybentów tematu, uruchamiając ich zarejestrowane wezwania.

Parametry

topic: string

Określa, gdzie słuchać wiadomości.

Wartość domyślna: ""
callback: function

Funkcja, która jest wzywana za każdym razem, gdy otrzymuje się wiadomość.

Wartość domyślna: ""

Zwroty

Połączenie, które można użyć do rezygnacji z tematu.

Przykłady kodu

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)

Zdarzenia