Class LoginServerSystem
- Namespace
- FishMMO.Server.Implementation.LoginServer
- Assembly
- FishMMO.Server.dll
Manages login server lifecycle, including database registration and heartbeat updates for the login service.
[CreateAssetMenu(fileName = "LoginServerSystem", menuName = "FishMMO/Server/LoginServer/Login Server System", order = 1)]
[RequiresDataContainer(typeof(LoginServerRuntimeData))]
[RequiresDataContainer(typeof(AsyncWorkerData))]
public class LoginServerSystem : ServerBehaviour, IServerBehaviour<INetworkManagerWrapper, ServerManager, NetworkConnection, IServerBehaviour>, IServerComponent<INetworkManagerWrapper, ServerManager, NetworkConnection, IServerBehaviour>, ILoginServerSystem, IServerBehaviour, IServerComponent
- Inheritance
-
ObjectScriptableObjectLoginServerSystem
- Implements
- Inherited Members
-
ScriptableObject.SetDirty()ScriptableObject.CreateInstance<T>()Object.GetEntityId()Object.GetInstanceID()Object.GetHashCode()Object.InstantiateAsync<T>(T)Object.InstantiateAsync<T>(T, Transform)Object.InstantiateAsync<T>(T, Vector3, Quaternion)Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)Object.Instantiate(Object, Vector3, Quaternion)Object.Instantiate(Object, Vector3, Quaternion, Transform)Object.Instantiate(Object)Object.Instantiate(Object, Scene)Object.Instantiate<T>(T, InstantiateParameters)Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)Object.Instantiate(Object, Transform)Object.Instantiate<T>(T)Object.Instantiate<T>(T, Vector3, Quaternion)Object.Instantiate<T>(T, Vector3, Quaternion, Transform)Object.Instantiate<T>(T, Transform)Object.Destroy(Object)Object.DestroyImmediate(Object)Object.DontDestroyOnLoad(Object)Object.DestroyObject(Object)Object.FindObjectsOfType<T>()Object.FindObjectsByType<T>(FindObjectsSortMode)Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)Object.FindObjectOfType<T>()Object.FindFirstObjectByType<T>()Object.FindAnyObjectByType<T>()Object.FindFirstObjectByType<T>(FindObjectsInactive)Object.FindAnyObjectByType<T>(FindObjectsInactive)Object.FindObjectsByType<T>()Object.FindObjectsByType<T>(FindObjectsInactive)Object.ToString()Object.nameObject.hideFlags
Properties
PulseRate
Interval in seconds between database heartbeat pulses.
public float PulseRate { get; }
Property Value
Methods
InitializeOnce()
Synchronous entry point. This system registers itself in the database, so it must be initialized through InitializeOnceAsync(CancellationToken); reaching this method means the asynchronous startup chain was bypassed.
public override ServerComponentInitializationStatus InitializeOnce()
Returns
InitializeOnceAsync(CancellationToken)
Initializes the login server system, registers event handlers, and adds the server to the database — without blocking the Unity main thread.
public override Task<ServerComponentInitializationStatus> InitializeOnceAsync(CancellationToken cancellationToken)
Parameters
cancellationTokenCancellationToken
Returns
Remarks
Awaits here deliberately capture Unity's SynchronizationContext (no
ConfigureAwait(false)), so execution resumes on the main thread and the Unity
and FishNet APIs used below stay legal.
OnDeinitialize()
Cleans up the login server system.
public override void OnDeinitialize()