pub struct ServerConfig<Ctx> { /* private fields */ }Expand description
Configuration for a server.
num_disconnect_packets- The number of redundant disconnect packets that will be sent to a client when the server is disconnecting it.keep_alive_send_rate- The rate at which keep-alive packets will be sent to clients.on_connect- A callback that will be called when a client is connected to the server.on_disconnect- A callback that will be called when a client is disconnected from the server.
§Example
use std::sync::{Arc, Mutex};
use lightyear_netcode::{Server, ServerConfig};
let thread_safe_counter = Arc::new(Mutex::new(0));
let cfg = ServerConfig::with_context(thread_safe_counter).on_connect(|idx, _, ctx| {
let mut counter = ctx.lock().unwrap();
*counter += 1;
println!("client {} connected, counter: {idx}", counter);
});
let server = Server::with_config(protocol_id, private_key, cfg).unwrap();Implementations§
Source§impl<Ctx> ServerConfig<Ctx>
impl<Ctx> ServerConfig<Ctx>
Sourcepub fn new() -> ServerConfig<()>
pub fn new() -> ServerConfig<()>
Create a new, default server configuration with no context.
Sourcepub fn with_context(ctx: Ctx) -> Self
pub fn with_context(ctx: Ctx) -> Self
Create a new server configuration with context that will be passed to the callbacks.
Sourcepub fn num_disconnect_packets(self, num: usize) -> Self
pub fn num_disconnect_packets(self, num: usize) -> Self
Set the number of redundant disconnect packets that will be sent to a client when the server is disconnecting it.
The default is 10 packets.
Sourcepub fn keep_alive_send_rate(self, rate_seconds: f64) -> Self
pub fn keep_alive_send_rate(self, rate_seconds: f64) -> Self
Set the rate (in seconds) at which keep-alive packets will be sent to clients.
The default is 10 packets per second. (0.1 seconds)
Sourcepub fn client_timeout_secs(self, client_timeout_secs: i32) -> Self
pub fn client_timeout_secs(self, client_timeout_secs: i32) -> Self
Set the duration (in seconds) after which the server disconnects a client if they don’t hear from them. The default is 10 seconds.
Sourcepub fn token_expire_secs(self, expire_secs: i32) -> Self
pub fn token_expire_secs(self, expire_secs: i32) -> Self
Set the duration (in seconds) after which ConnectTokens generated by the server will expire The default is 30 seconds.
Sourcepub fn server_addr(self, server_addr: SocketAddr) -> Self
pub fn server_addr(self, server_addr: SocketAddr) -> Self
Set the socket address of the server.
Sourcepub fn on_connect<F>(self, cb: F) -> Self
pub fn on_connect<F>(self, cb: F) -> Self
Provide a callback that will be called when a client is connected to the server.
The callback will be called with the client index and the context that was provided (provide a None context if you don’t need one).
See ServerConfig for an example.
Sourcepub fn on_disconnect<F>(self, cb: F) -> Self
pub fn on_disconnect<F>(self, cb: F) -> Self
Provide a callback that will be called when a client is disconnected from the server.
The callback will be called with the client index and the context that was provided (provide a None context if you don’t need one).
See ServerConfig for an example.
Trait Implementations§
Auto Trait Implementations§
impl<Ctx> Freeze for ServerConfig<Ctx>where
Ctx: Freeze,
impl<Ctx> !RefUnwindSafe for ServerConfig<Ctx>
impl<Ctx> Send for ServerConfig<Ctx>where
Ctx: Send,
impl<Ctx> Sync for ServerConfig<Ctx>where
Ctx: Sync,
impl<Ctx> Unpin for ServerConfig<Ctx>where
Ctx: Unpin,
impl<Ctx> !UnwindSafe for ServerConfig<Ctx>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().