Akka.Interfaced.SlimSocket.Server.UdpGateway.ServerThreadWork C# (CSharp) Метод

ServerThreadWork() приватный Метод

private ServerThreadWork ( ) : void
Результат void
        private void ServerThreadWork()
        {
            // capture _server member to avoid race condition.
            var server = _server;

            while (_isStopped == false || _channelMap.Count > 0)
            {
                NetIncomingMessage msg;
                while ((msg = server.WaitMessage(100)) != null)
                {
                    switch (msg.MessageType)
                    {
                        case NetIncomingMessageType.ConnectionApproval:
                            _self.Tell(new AcceptMessage(msg));
                            break;

                        case NetIncomingMessageType.StatusChanged:
                            var status = (NetConnectionStatus)msg.ReadByte();
                            switch (status)
                            {
                                case NetConnectionStatus.Disconnected:
                                    IActorRef disconnectedChannel;
                                    if (_channelMap.TryRemove(msg.SenderConnection, out disconnectedChannel))
                                    {
                                        disconnectedChannel.Tell(UdpChannel.DisconnectedMessage.Instance);
                                    }
                                    else
                                    {
                                        _logger.ErrorFormat($"Failed in removing connection in Disconnected.");
                                    }
                                    break;
                            }
                            break;
                    }

                    server.Recycle(msg);
                }
            }
        }
    }