Struct rivet_matchmaker::client::fluent_builders::PlayerConnected
source · [−]pub struct PlayerConnected<C, M, R = Standard> { /* private fields */ }
Expand description
Fluent builder constructing a request to PlayerConnected
.
Validates the player token is valid and has not already been consumed then marks the player as connected. # Player Tokens and Reserved Slots Player tokens reserve a spot in the lobby until they expire. This allows for precise matchmaking up to exactly the lobby’s player limit, which is important for games with small lobbies and a high influx of players. By calling this endpoint with the player token, the player’s spot is marked as connected and will not expire. If this endpoint is never called, the player’s token will expire and this spot will be filled by another player. # Anti-Botting Player tokens are only issued by caling rivet.api.matchmaker#JoinLobby
, calling rivet.api.matchmaker#FindLobby
, or from the rivet.api.identity.common#GlobalEventMatchmakerLobbyJoin
event. These endpoints have anti-botting measures (i.e. enforcing max player limits, captchas, and detecting bots), so valid player tokens provide some confidence that the player is not a bot. Therefore, it’s important to make sure the token is valid by waiting for this endpoint to return OK before allowing the connected socket to do anything else. If this endpoint returns an error, the socket should be disconnected immediately. # How to Transmit the Player Token The client is responsible for acquiring the player token by caling rivet.api.matchmaker#JoinLobby
, calling rivet.api.matchmaker#FindLobby
, or from the rivet.api.identity.common#GlobalEventMatchmakerLobbyJoin
event. Beyond that, it’s up to the developer how the player token is transmitted to the lobby. If using WebSockets, the player token can be transmitted as a query paramter. Otherwise, the player token will likely be automatically sent by the client once the socket opens. As mentioned above, nothing else should happen until the player token is validated.
Implementations
sourceimpl<C, M, R> PlayerConnected<C, M, R> where
C: SmithyConnector,
M: SmithyMiddleware<C>,
R: NewRequestPolicy,
impl<C, M, R> PlayerConnected<C, M, R> where
C: SmithyConnector,
M: SmithyMiddleware<C>,
R: NewRequestPolicy,
sourcepub async fn send(
self
) -> Result<PlayerConnectedOutput, SdkError<PlayerConnectedError>> where
R::Policy: SmithyRetryPolicy<PlayerConnectedInputOperationOutputAlias, PlayerConnectedOutput, PlayerConnectedError, PlayerConnectedInputOperationRetryAlias>,
pub async fn send(
self
) -> Result<PlayerConnectedOutput, SdkError<PlayerConnectedError>> where
R::Policy: SmithyRetryPolicy<PlayerConnectedInputOperationOutputAlias, PlayerConnectedOutput, PlayerConnectedError, PlayerConnectedInputOperationRetryAlias>,
Sends the request and returns the response.
If an error occurs, an SdkError
will be returned with additional details that
can be matched against.
By default, any retryable failures will be retried twice. Retry behavior is configurable with the RetryConfig, which can be set when configuring the client.
sourcepub fn player_token(self, input: impl Into<String>) -> Self
pub fn player_token(self, input: impl Into<String>) -> Self
A JSON Web Token. Slightly modified to include a description prefix and use Protobufs of JSON.
sourcepub fn set_player_token(self, input: Option<String>) -> Self
pub fn set_player_token(self, input: Option<String>) -> Self
A JSON Web Token. Slightly modified to include a description prefix and use Protobufs of JSON.
Trait Implementations
sourceimpl<C: Clone, M: Clone, R: Clone> Clone for PlayerConnected<C, M, R>
impl<C: Clone, M: Clone, R: Clone> Clone for PlayerConnected<C, M, R>
sourcefn clone(&self) -> PlayerConnected<C, M, R>
fn clone(&self) -> PlayerConnected<C, M, R>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
Auto Trait Implementations
impl<C, M, R = Standard> !RefUnwindSafe for PlayerConnected<C, M, R>
impl<C, M, R> Send for PlayerConnected<C, M, R> where
C: Send + Sync,
M: Send + Sync,
R: Send + Sync,
impl<C, M, R> Sync for PlayerConnected<C, M, R> where
C: Send + Sync,
M: Send + Sync,
R: Send + Sync,
impl<C, M, R> Unpin for PlayerConnected<C, M, R>
impl<C, M, R = Standard> !UnwindSafe for PlayerConnected<C, M, R>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more