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())); }
public static Props Props(IChatBridge bridge, string serverAddress) => Akka.Actor.Props.Create(() => new ChatClientActor(bridge, serverAddress));