示例#1
0
        async Task Register()
        {
            while (true)
            {
                var callManagementServerEndpoint = _serviceDiscovery.CallManagementServerEndpoint();
                Console.WriteLine($"Attempting to register with LoadBalancer {callManagementServerEndpoint}");
                bool registered = await _loadBalancerProtocol.SendRegisterServingNode(
                    new IPEndPoint(_serviceDiscovery.GetMyAddress(), _ropuProtocol.MediaPort),
                    callManagementServerEndpoint);

                if (registered)
                {
                    await Task.Delay(60000);

                    continue;
                }
                Console.WriteLine("Failed to register with load balancer");
                await Task.Delay(5000);
            }
        }
示例#2
0
        async Task Register()
        {
            while (true)
            {
                var  callManagementServerEndpoint = _serviceDiscovery.CallManagementServerEndpoint();
                bool registered = await _loadBalancerProtocol.SendRegisterCallController(
                    new IPEndPoint(_serviceDiscovery.GetMyAddress(), _ropuProtocol.MediaPort),
                    callManagementServerEndpoint);

                if (registered)
                {
                    Console.WriteLine("Registered");
                    while (true)
                    {
                        await Task.Delay(GetRefreshIntervalMilliseconds());

                        if (_controllerId == null)
                        {
                            //never received a Controller Registration Info Packet
                            Console.WriteLine("Never received a Controller Registration Info Packet");
                            //need to resend our registration
                            break;
                        }
                        if (!await TaskCordinator.Retry(() => _loadBalancerProtocol.SendControllerRefreshCallController(_controllerId.Value, callManagementServerEndpoint)))
                        {
                            registered = false;
                            break;
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Failed to register");
                    await Task.Delay(2000);
                }
            }
        }