pub struct ConnectToken { /* private fields */ }
Expand description
A token containing all the information required for a client to connect to a server.
The token should be provided to the client by some out-of-band method, such as a web service or a game server browser.
See netcode’s upstream specification for more details.
§Example
use netcode::ConnectToken;
// mandatory fields
let server_address = "crates.io:12345"; // the server's public address (can also be multiple addresses)
let private_key = netcode::generate_key(); // 32-byte private key, used to encrypt the token
let protocol_id = 0x11223344; // must match the server's protocol id - unique to your app/game
let client_id = 123; // globally unique identifier for an authenticated client
// optional fields
let expire_seconds = -1; // defaults to 30 seconds, negative for no expiry
let timeout_seconds = -1; // defaults to 15 seconds, negative for no timeout
let user_data = [0u8; netcode::USER_DATA_BYTES]; // custom data
let connect_token = ConnectToken::build(server_address, protocol_id, client_id, private_key)
.expire_seconds(expire_seconds)
.timeout_seconds(timeout_seconds)
.user_data(user_data)
.generate()
.unwrap();
// Serialize the connect token to a 2048-byte array
let token_bytes = connect_token.try_into_bytes().unwrap();
assert_eq!(token_bytes.len(), netcode::CONNECT_TOKEN_BYTES);
Alternatively, you can use Server::token
to generate a connect token from an already existing Server
.
Implementations§
Source§impl ConnectToken
impl ConnectToken
Sourcepub fn build<A: ToSocketAddrs>(
server_addresses: A,
protocol_id: u64,
client_id: u64,
private_key: Key,
) -> ConnectTokenBuilder<A>
pub fn build<A: ToSocketAddrs>( server_addresses: A, protocol_id: u64, client_id: u64, private_key: Key, ) -> ConnectTokenBuilder<A>
Creates a new connect token builder that can be used to generate a connect token.
Auto Trait Implementations§
impl Freeze for ConnectToken
impl RefUnwindSafe for ConnectToken
impl Send for ConnectToken
impl Sync for ConnectToken
impl Unpin for ConnectToken
impl UnwindSafe for ConnectToken
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
Mutably borrows from an owned value. Read more