internal override void HandleEnvelope(object sender, EnvelopeEventArgs e) { ChatEnvelope chatEnvelope = e.Envelope; LOG(LogLevel.VERBOSE, $"Received this message: {chatEnvelope.Message.ToJson()}"); if (broker.ChatRoom.UpdateUsers(chatEnvelope.RawAddress)) { return; } // recovering chat message var rawAddress = chatEnvelope.RawAddress; var userChatMessage = chatEnvelope.Message; // if registration successful, skip if (new CommandsInvoker(new CmdNewUserRegistrationServer(broker, userChatMessage, rawAddress)).Invoke()) { return; } // if notification exit, skip if (new CommandsInvoker(new CmdNotifyExitServer(broker, userChatMessage, rawAddress)).Invoke()) { return; } // report number of knowing connected users broker.ChatRoom.ReportUsers(); // forward all messages to other participants new CommandsInvoker(new CmdForwardToOthers(broker, userChatMessage, rawAddress)).Invoke(); }
internal override void HandleEnvelope(object sender, EnvelopeEventArgs e) { ChatEnvelope chatEnvelope = e.Envelope; ChatMessage chatMessage = chatEnvelope.Message; var cmdInvoker = new CommandsInvoker(); var chatUserSession = base.chatRoom.UserSession; cmdInvoker.AddCommand(new CmdChatRegister(chatUserSession, chatMessage)); cmdInvoker.AddCommand(new CmdReceiveChat(chatUserSession, chatMessage)); cmdInvoker.AddCommand(new CmdReceiveBroadcastNewUser(chatUserSession, chatMessage)); cmdInvoker.AddCommand(new CmdReceiveBroadcastEndSession(chatUserSession, chatMessage)); cmdInvoker.InvokeAll(); }
internal void Socket_ReceiveReady(object sender, NetMQSocketEventArgs e) { string msgJson = e.Socket.ReceiveFrameString(); if (!string.IsNullOrEmpty(msgJson)) { ChatEnvelope envelope = new ChatEnvelope { Message = msgJson.ToChatMessage() }; this.Deliver(envelope); } }
public void Deliver(ChatEnvelope chatEnvelope) { OnRaiseEnvelopeEvent(new EnvelopeEventArgs(chatEnvelope)); }
internal EnvelopeEventArgs(ChatEnvelope chatEnvelope) { Envelope = chatEnvelope; }