コード例 #1
0
        public static void InitSdk()
        {
            if (!SdkStatus.IsUnInit())
            {
                return;
            }
            if (User != null)
            {
                UnInitSdk();
            }
            // 正在初始化
            SdkStatus.SetStatus(SdkStatus.StatusType.Initing);

            Core.InitModules();
            BaseNetUtil.StopQueueLoop();
            BaseNetUtil.StartQueueLoop();

            // 设置 Socket 链接地址
            Socket1.Url = Config.Url;

            // loginEvent += onSocketConnect;
            ListenSocketConnect();

            Socket1.ConnectSocketTask("init Sdk");
        }
コード例 #2
0
        private static void InitModules()
        {
            Core.User        = new User.User(Sdk.Responses);
            Core.Matcher     = new Matcher.Matcher(Sdk.Responses);
            Core.Sender      = new Sender.Sender(Sdk.Responses);
            Core.Room        = new Room.Room(Sdk.Responses);
            Core.FrameSender = new FrameSender(Sdk.Responses);

            Core.Socket1 = new Socket(0, false, null);
            Core.Socket2 = new Socket(1, true, null);

            Core.Pinger1 = new Pinger(Sdk.Responses, 0, null);
            Core.Pinger2 = new Pinger(Sdk.Responses, 1, FrameSender);

            var route1 = new BaseNetUtil[6] {
                User, Room, Sender, FrameSender.NetUtil1, Pinger1, Matcher
            };
            var route2 = new BaseNetUtil[2] {
                FrameSender.NetUtil2, Pinger2
            };

            foreach (var request in route1)
            {
                request.BindSocket(Core.Socket1);
            }
            foreach (var request in route2)
            {
                request.BindSocket(Core.Socket2);
            }

            Sdk.UpdateSdk();
        }
コード例 #3
0
        private static void UnInitModules()
        {
            Socket1?.DestroySocketTask();
            Socket2?.DestroySocketTask();
            var route = new BaseNetUtil[8] {
                User, Room, Sender, Matcher, FrameSender.NetUtil1, FrameSender.NetUtil2, Pinger1, Pinger2
            };

            foreach (var request in route)
            {
                request?.UnbindSocket();
            }
        }
コード例 #4
0
ファイル: Core.cs プロジェクト: moto2002/FrameLock
        public static void UnInitSdk()
        {
            if (SdkStatus.IsUnInit())
            {
                return;
            }

            Pinger1.Stop();
            Pinger2.Stop();

            BaseNetUtil.StopQueueLoop();
            Sdk.Instance.ClearResponse();

            Core.UnInitModules();

            SdkStatus.SetStatus(SdkStatus.StatusType.Uninit);
            UserStatus.SetStatus(UserStatus.StatusType.Logout);
            Sdk.Uninit();
        }