Beispiel #1
0
        public ChatClientActor(IChatBridge bridge, string serverAddress)
        {
            var server = Context.ActorSelection($"akka.tcp://MyServer@{serverAddress}:8081/user/ChatServer");

            Receive <ConnectResponse>(message =>
            {
                bridge.OnStatusMessage("Connected!");
                bridge.OnStatusMessage(message.Message);
            });

            Receive <NickRequest>(message =>
            {
                message.OldUsername = _nick;
                bridge.OnStatusMessage($"Changing nick to {message.NewUsername}");
                _nick = message.NewUsername;
                server.Tell(message);
            });

            Receive <NickResponse>(message =>
                                   bridge.OnStatusMessage($"{message.OldUsername} is now known as {message.NewUsername}")
                                   );

            Receive <SayResponse>(message =>
                                  bridge.OnChatMessage($"{message.Username}: {message.Text}")
                                  );

            Receive <ConnectRequest>(message =>
            {
                bridge.OnStatusMessage("Connecting....");
                _nick = message.Username;
                server.Tell(message);
            });

            Receive <SayRequest>(message =>
            {
                message.Username = _nick;
                server.Tell(message);
            });

            Receive <Terminated>(message => bridge.OnStatusMessage("Server died"));

            ReceiveAny(message => bridge.OnLogMessage(message.ToString()));
        }
Beispiel #2
0
 public static Props Props(IChatBridge bridge, string serverAddress) =>
 Akka.Actor.Props.Create(() => new ChatClientActor(bridge, serverAddress));