Struct ggrs::SpectatorSession
source · pub struct SpectatorSession<T>where
T: Config,{ /* private fields */ }
Expand description
SpectatorSession
provides all functionality to connect to a remote host in a peer-to-peer fashion.
The host will broadcast all confirmed inputs to this session.
This session can be used to spectate a session without contributing to the game input.
Implementations§
source§impl<T: Config> SpectatorSession<T>
impl<T: Config> SpectatorSession<T>
sourcepub fn current_state(&self) -> SessionState
pub fn current_state(&self) -> SessionState
Returns the current SessionState
of a session.
sourcepub fn frames_behind_host(&self) -> usize
pub fn frames_behind_host(&self) -> usize
Returns the number of frames behind the host
sourcepub fn network_stats(&self) -> Result<NetworkStats, GgrsError>
pub fn network_stats(&self) -> Result<NetworkStats, GgrsError>
Used to fetch some statistics about the quality of the network connection.
§Errors
- Returns
NotSynchronized
if the session is not connected to other clients yet.
sourcepub fn events(&mut self) -> Drain<'_, GgrsEvent<T>>
pub fn events(&mut self) -> Drain<'_, GgrsEvent<T>>
Returns all events that happened since last queried for events. If the number of stored events exceeds MAX_EVENT_QUEUE_SIZE
, the oldest events will be discarded.
sourcepub fn advance_frame(&mut self) -> Result<Vec<GgrsRequest<T>>, GgrsError>
pub fn advance_frame(&mut self) -> Result<Vec<GgrsRequest<T>>, GgrsError>
You should call this to notify GGRS that you are ready to advance your gamestate by a single frame.
Returns an order-sensitive Vec<GgrsRequest>
. You should fulfill all requests in the exact order they are provided.
Failure to do so will cause panics later.
§Errors
- Returns
NotSynchronized
if the session is not yet ready to accept input. In this case, you either need to start the session or wait for synchronization between clients.
sourcepub fn poll_remote_clients(&mut self)
pub fn poll_remote_clients(&mut self)
Receive UDP packages, distribute them to corresponding UDP endpoints, handle all occurring events and send all outgoing UDP packages. Should be called periodically by your application to give GGRS a chance to do internal work like packet transmissions.
sourcepub fn num_players(&self) -> usize
pub fn num_players(&self) -> usize
Returns the number of players this session was constructed with.