MessagingService
*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.
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
Wzywa dostarczony powrót za każdym razem, gdy wiadomość zostanie przesłana do tematu.
Zaczyna słuchać danego tematu.
Właściwości
Metody
PublishAsync
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
Określa, gdzie wysłana jest wiadomość.
Dane do włączenia do wiadomość.
Zwroty
SubscribeAsync
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
Określa, gdzie słuchać wiadomości.
Funkcja, która jest wzywana za każdym razem, gdy otrzymuje się wiadomość.
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.
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)