private void OnConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t param) { ulong clientSteamID = param.m_info.m_identityRemote.GetSteamID64(); if (param.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_Connected) { Connected = true; OnConnected.Invoke(); Debug.Log("Connection established."); if (BufferedData.Count > 0) { Debug.Log($"{BufferedData.Count} received before connection was established. Processing now."); { foreach (Action a in BufferedData) { a(); } } } } else if (param.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_ClosedByPeer || param.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_ProblemDetectedLocally) { Debug.Log($"Connection was closed by peer, {param.m_info.m_szEndDebug}"); Disconnect(); } else { Debug.Log($"Connection state changed: {param.m_info.m_eState.ToString()} - {param.m_info.m_szEndDebug}"); } }
private void OnConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t param) { ulong clientSteamID = param.m_info.m_identityRemote.GetSteamID64(); if (param.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_Connected) { Connected = true; OnConnected.Invoke(); Debug.Log("Connection established."); if (BufferedData.Count > 0) { Debug.Log($"{BufferedData.Count} received before connection was established. Processing now."); { foreach (Action a in BufferedData) { a(); } } } } else if (param.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_ClosedByPeer) { Connected = false; OnDisconnected.Invoke(); Debug.Log("Disconnected."); SteamNetworkingSockets.CloseConnection(param.m_hConn, 0, "Disconnected", false); } else { Debug.Log($"Connection state changed: {param.m_info.m_eState.ToString()}"); } }
// Token: 0x06000983 RID: 2435 RVA: 0x00045D30 File Offset: 0x00043F30 private static void OnStatusChanged(SteamNetConnectionStatusChangedCallback_t data) { ZLog.Log("Got status changed msg " + data.m_info.m_eState); if (data.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_Connected && data.m_eOldState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_Connecting) { ZLog.Log("Connected"); ZSteamSocket zsteamSocket = ZSteamSocket.FindSocket(data.m_hConn); if (zsteamSocket != null) { SteamNetConnectionInfo_t steamNetConnectionInfo_t; if (SteamNetworkingSockets.GetConnectionInfo(data.m_hConn, out steamNetConnectionInfo_t)) { zsteamSocket.m_peerID = steamNetConnectionInfo_t.m_identityRemote; } ZLog.Log("Got connection SteamID " + zsteamSocket.m_peerID.GetSteamID().ToString()); } } if (data.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_Connecting && data.m_eOldState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_None) { ZLog.Log("New connection"); ZSteamSocket listner = ZSteamSocket.GetListner(); if (listner != null) { listner.OnNewConnection(data.m_hConn); } } if (data.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_ProblemDetectedLocally) { ZLog.Log(string.Concat(new object[] { "Got problem ", data.m_info.m_eEndReason, ":", data.m_info.m_szEndDebug })); ZSteamSocket zsteamSocket2 = ZSteamSocket.FindSocket(data.m_hConn); if (zsteamSocket2 != null) { ZLog.Log(" Closing socket " + zsteamSocket2.GetHostName()); zsteamSocket2.Close(); } } if (data.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_ClosedByPeer) { ZLog.Log("Socket closed by peer " + data); ZSteamSocket zsteamSocket3 = ZSteamSocket.FindSocket(data.m_hConn); if (zsteamSocket3 != null) { ZLog.Log(" Closing socket " + zsteamSocket3.GetHostName()); zsteamSocket3.Close(); } } }
private void OnConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t param) { ulong clientSteamID = param.m_info.m_identityRemote.GetSteamID64(); if (param.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_Connecting) { if (connToMirrorID.Count >= maxConnections) { Debug.Log($"Incoming connection {clientSteamID} would exceed max connection count. Rejecting."); SteamNetworkingSockets.CloseConnection(param.m_hConn, 0, "Max Connection Count", false); return; } EResult res; if ((res = SteamNetworkingSockets.AcceptConnection(param.m_hConn)) == EResult.k_EResultOK) { Debug.Log($"Accepting connection {clientSteamID}"); } else { Debug.Log($"Connection {clientSteamID} could not be accepted: {res.ToString()}"); } } else if (param.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_Connected) { int connectionId = nextConnectionID++; connToMirrorID.Add(param.m_hConn, connectionId); steamIDToMirrorID.Add(param.m_info.m_identityRemote.GetSteamID(), connectionId); OnConnected.Invoke(connectionId); Debug.Log($"Client with SteamID {clientSteamID} connected. Assigning connection id {connectionId}"); } else if (param.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_ClosedByPeer) { if (connToMirrorID.TryGetValue(param.m_hConn, out int connId)) { OnDisconnected.Invoke(connId); SteamNetworkingSockets.CloseConnection(param.m_hConn, 0, "Graceful disconnect", false); connToMirrorID.Remove(connId); steamIDToMirrorID.Remove(connId); Debug.Log($"Client with SteamID {clientSteamID} disconnected."); } } else { Debug.Log($"Connection {clientSteamID} state changed: {param.m_info.m_eState.ToString()}"); } }
private static void ConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t data) { // // This is a message from/to a listen socket // if (data.Nfo.listenSocket.Id > 0) { var iface = GetSocketManager(data.Nfo.listenSocket.Id); iface?.OnConnectionChanged(data.Conn, data.Nfo); } else { var iface = GetConnectionManager(data.Conn.Id); iface?.OnConnectionChanged(data.Nfo); } OnConnectionStatusChanged?.Invoke(data.Conn, data.Nfo); }