示例#1
0
        /// <summary>
        /// Получение проверки синхронизации ДМЧ от сервера
        /// </summary>
        /// <param name="hashOtherWeights">Хэш-значение другого абонента</param>
        public override async Task ReceiveHashWeightsAsync(string hashOtherWeights)
        {
            // проверка синхронизации перехватчика
            string hashWeightsInretceptor = MachineInterceptor.GetHashWeights();

            if (hashWeightsInretceptor.Equals(HashWeights) ||
                hashWeightsInretceptor.Equals(hashOtherWeights))
            {
                SuccessInterceptor?.Invoke(this, EventArgs.Empty);
                return;
            }
            await base.ReceiveHashWeightsAsync(hashOtherWeights);
        }
示例#2
0
        /// <summary>
        /// Получение тау (результата ДМЧ) авбонента от сервера
        /// </summary>
        /// <param name="inputTau">тау (результата ДМЧ) авбонента</param>
        public virtual async Task ReceiveTauAsync(int inputTau)
        {
            Debug.WriteLine("Get Tau");
            if (Machine.Tau.Equals(inputTau))
            {
                await Task.Run(() => Machine.UpdateWeighs(inputTau));
            }
            HashWeights = Machine.GetHashWeights();

            ClosedTokenSource.CancelAfter(TimeSpan.FromSeconds(5));
            // Отправка хэш весов на сервер
            try {
                await HubProtocolConnection.InvokeAsync("SendHashWeights",
                                                        NameRecipient, HashWeights).ConfigureAwait(false);
            }
            catch (Exception ex) {
                Debug.WriteLine(ex);
                throw ex;
            }
        }