예제 #1
0
        private void StartServerConnection()
        {
            var cp = new VoicePaketConnectServer()
            {
                Secret = _configuration.ServerSecret, Version = Assembly.GetExecutingAssembly().GetName().Version, ClientGUID = _configuration.ClientGUID
            };
            var nw = new NetDataWriter();

            cp.Serialize(nw);
            CreateClientConnection();
            Client.Connect(_configuration.ServerIP, _configuration.ServerPort, nw);
        }
예제 #2
0
        public void OnConnectionRequest(ConnectionRequest request)
        {
            var connectPaket = new VoicePaketConnectServer();

            connectPaket.Deserialize(request.Data);
            if (connectPaket.Secret != _secret)
            {
                Logger.Warn("Unauthorized connect from {0} : Wrong secret", request.RemoteEndPoint);
                request.Reject();
                return;
            }
            if (connectPaket.Version < _requiredClientVersion)
            {
                Logger.Warn("Unauthorized connect from {0} : Wrong Version {1}", request.RemoteEndPoint, connectPaket.Version);
                request.Reject();
                VoiceClientOutdated?.Invoke(connectPaket.ClientGUID, connectPaket.Version, _requiredClientVersion);
                return;
            }
            Logger.Debug("Connection accepted {0}", request.RemoteEndPoint);
            request.Accept();
        }