protected void LateUpdate() { if (!isInitialized) { return; } //if (!isSimulated) //{ // UDPTransport.Process(); //} //else //{ //} if (isSimulated) { while (UDPTransport.ReceiveSimulatedMessage(UDPTransport.Source.Client, out int connID, out UDPTransport.TransportEvent transportEvent, out ArraySegment <byte> data)) { switch (transportEvent) { case UDPTransport.TransportEvent.Connected: HandleConnect(); break; case UDPTransport.TransportEvent.Data: HandleData(data, 1); break; case UDPTransport.TransportEvent.Disconnected: HandleDisconnect(); break; } } } }
public bool SendSimulatedMessage(ArraySegment <byte> msg, UDPTransport.Source source) { if (!IsConnected) { return(false); } return(UDPTransport.SendSimulated(connectionID, msg, source)); }
private void HandleDisconnect() { Status = ConnectionStatus.Disconnected; IsConnected = false; UDPTransport.Disconnect(); connectionID = -1; if (ServerPeer != null) { ServerPeer.Dispose(); ServerPeer.IsConnected = false; } Disconnected?.Invoke(); }
private IEnumerator WaitStartFrame() { yield return(null); UDPTransport.Init(true, false, isSimulated); if (!isSimulated) { UDPTransport.StartServer(address, port); } isInitialized = true; Started?.Invoke(); isRunning = true; Debug.Log("Server Started"); }
protected virtual void Start() { InitializeModules(); UDPTransport.OnClientConnected = HandleConnect; UDPTransport.OnClientDataReceived = HandleData; UDPTransport.OnClientDisconnected = HandleDisconnect; RegisterHandler(OpCode.Pong, OnHandlePong); if (connectOnStart) { StartCoroutine(StartConnection()); } UDPTransport.Init(false, true, isSimulated); isInitialized = true; }
/// <summary> /// Starts connecting to another socket with a specified timeout. /// </summary> /// <param name="ip"></param> /// <param name="port"></param> /// <param name="timeout">Milliseconds</param> /// <returns></returns> public UDPClient Connect(string ip, int port, int timeout) { connectionID = 0; stopConnectingTick = Environment.TickCount + timeout; ConnectionIP = ip; ConnectionPort = port; IsConnecting = true; if (!isSimulated) { UDPTransport.Connect(ip, port); } else { UDPTransport.SimulatedConnect(connectionID); HandleConnect(); } return(this); }
protected void OnDisable() { if (!isInitialized) { return; } if (instance != this) { return; } instance = null; isInitialized = false; handlers.Clear(); UDPTransport.Shutdown(); isRunning = false; Debug.Log("Server Shutdown"); }
private void OnGUI() { if (!view) { return; } UDPTransport.OnLogStatistics(false, out var server, out var client); GUILayout.BeginArea(new Rect(8, 8, 300, 600)); GUILayout.BeginVertical("Box"); GUILayout.Label("SERVER"); GUILayout.Label(server); GUILayout.Space(12); GUILayout.EndVertical(); GUILayout.BeginVertical("Box"); GUILayout.Label("CLIENT"); GUILayout.Label(client); GUILayout.Space(12); GUILayout.EndVertical(); GUILayout.EndArea(); }
/// <summary> /// Force a disconnect. Only works on the server. /// </summary> /// <param name="reason">Reason error code</param> public void Disconnect(int reason = 0) { IsConnected = false; UDPTransport.DisconnectPeer(connectionID); }
/// <summary> /// Disconnect the <see cref="ClientSocket"/> from the <see cref="ServerSocket"/>. /// </summary> public void Disconnect() { UDPTransport.Disconnect(); HandleDisconnect(); }
private void OnApplicationQuit() { UDPTransport.Disconnect(); }
internal static void NetworkLateUpdate() { UDPTransport.ClientLateUpdate(); }
internal static void NetworkEarlyUpdate() { // process all incoming messages first before updating the world UDPTransport.ClientEarlyUpdate(); }
internal static void NetworkLateUpdate() { UDPTransport.ServerLateUpdate(); }
internal static void NetworkEarlyUpdate() { UDPTransport.ServerEarlyUpdate(); }
public void Shutdown() { UDPTransport.Shutdown(); isRunning = false; }