public override void Close(string msg = null)
        {
            if (!isActive)
            {
                return;
            }

            SteamManager.LeaveLobby();

            isActive = false;

            IWriteMessage outMsg = new WriteOnlyMessage();

            outMsg.Write((byte)DeliveryMethod.Reliable);
            outMsg.Write((byte)PacketHeader.IsDisconnectMessage);
            outMsg.Write(msg ?? "Disconnected");

            SteamManager.Instance.Networking.SendP2PPacket(hostSteamId, outMsg.Buffer, outMsg.LengthBytes,
                                                           Facepunch.Steamworks.Networking.SendType.Reliable);

            Thread.Sleep(100);

            Steam.SteamManager.Instance.Networking.OnIncomingConnection = null;
            Steam.SteamManager.Instance.Networking.OnP2PData            = null;
            Steam.SteamManager.Instance.Networking.SetListenChannel(0, false);

            Steam.SteamManager.Instance.Networking.CloseSession(hostSteamId);

            steamAuthTicket?.Cancel(); steamAuthTicket = null;
            hostSteamId = 0;

            OnDisconnect?.Invoke();
        }
示例#2
0
        public override void Dispose()
        {
            ServerPeer.EnetPeer.DisconnectNow(0);

#if STEAM_AUTH
            m_AuthTicket?.Cancel();
            m_AuthTicket = null;
#endif

            base.Dispose();
        }
示例#3
0
        public override void Close(string msg = null)
        {
            if (!isActive)
            {
                return;
            }

            isActive = false;

            netClient.Shutdown(msg ?? TextManager.Get("Disconnecting"));
            netClient = null;
            steamAuthTicket?.Cancel(); steamAuthTicket = null;
            OnDisconnect?.Invoke();
        }
 private void OnDestroy()
 {
     if (gameObject.name == "SteamManager")
     {
         if (Server.Instance != null)
         {
             Server.Instance.Dispose();
         }
         if (ticket != null)
         {
             ticket.Cancel();
         }
     }
 }