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

MessagingService umożliwia komunikację serwerów tego samego doświadczenia w czasie rzeczywistym (mniej niż 1 sekundę) przy użyciu tematów. Tematy są zmienne ciągi znaków (1–80 znaków), które serwery używają do wysyłania i otrzymywania wiadomości.

Dostarczanie jest najlepszym wysiłkiem i nie jest gwarantowane. Upewnij się, że zaprojektujesz swoją wrażliwość, aby awarie dostarczania nie były krytyczne.

Cross-Server Messaging zbada sposób komunikacji między serwerami w większym szczególe.

Jeśli chcesz opublikować awaryjne wiadomości na serwerach gry, możesz użyć otwartych chmurowych interfejsów API.

Ograniczenia

Uwaga, że te limity podlegają zmianie.


<tbody>
<tr>
<td>
<b>Wielkość wiadomości</b>
</td>
<td>
1kB
</td>
</tr>
<tr>
<td>
<b>Wiadomości wysyłane na serwerze gry</b>
</td>
<td>
600 + 240 \* (liczba graczy na tym serwerze) za minutę
</td>
</tr>
<tr>
<td>
<b>Wiadomości otrzymane za temat</b>
</td>
<td>
(40 + 80 \* liczba serwerów) za minutę
</td>
</tr>
<tr>
<td>
<b>Wiadomości otrzymane dla całej gry</b>
</td>
<td>
(400 + 200 \* liczba serwerów) za minutę
</td>
</tr>
<tr>
<td>
<b>Subskrypcje umożliwione na każdym serwerze gry</b>
</td>
<td>
20 + 8 \* (liczba graczy na tym serwerze)
</td>
</tr>
<tr>
<td>
<b>Subskrybuj wnioski na serwerze gry</b>
</td>
<td>
240 wątków prośb na minutę
</td>
</tr>
</tbody>
OgraniczenieMaksymalny

Podsumowanie

Metody

Właściwości

Metody

PublishAsync

void
Wynik

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

Zwrotuje wynik, aż wiadomość zostanie otrzymana przez backend.

Parametry

topic: string

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

message: Variant

Dane do włączenia w wiadomość.


Zwroty

void

SubscribeAsync

Wynik

Funkcja ta rejestruje wezwanie, aby zacząć słuchać podanego tematu. Wezwanie jest wzywane, gdy temat otrzymuje wiadomość. Można to zadzwonić wiele razy dla tego samego tematu.

Zwrot

Kwota jest wzywana z jednym argumentem, tabela zawierająca następujące wpisy:


<tbody>
<tr>
<td>
<b>Dane</b>
</td>
<td>
Zasilany przez programistę ładowanie
</td>
</tr>
<tr>
<td>
<b>Wysłano</b>
</td>
<td>
Czas UNIX w sekundach, w których wysłano wiadomość
</td>
</tr>
</tbody>
PolePodsumowanie

Wygeneruje do czasu, aż subskrypcja zostanie prawidłowo zarejestrowana i zwróci obiekt połączenia.

Aby się odsubskrybować, wezwij Disconnect() na obiekcie zwróconym. Po wezwaniu powinien nigdy nie być wzywany. Zabijając skrypt zawierający połączenia, powoduje również, że połączenie podstawowe zostanie odsubskrybowane.

Zobacz również MessagingService:PublishAsync(), który wysyła dostarczoną wiadomość do wszystkich subskrybentów tematu, wywołując ich zarejestrowane wezwania, aby zostać wykonane.

Parametry

topic: string

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

callback: function

Funkcja do zadzwonienia za każdym razem, gdy jest otrzymywana wiadomość.


Zwroty

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

Przykłady kodu

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