Exemplo n.º 1
0
        protected override void OnStartListeningToHub()
        {
            _hubConnection.On <ReceivedMessageSignalArgs>(_RECEIVE_NEW_GROUP_MESSAGE, (args) => {
                GroupMessageReceived.Invoke(this, args);
            });

            _hubConnection.On <ReceivedMessageSignalArgs>(_RECEIVE_NEW_TEAM_MESSAGE, (args) => {
                TeamMessageReceived.Invoke(this, args);
            });

            _hubConnection.On <ReceivedMessageSignalArgs>(_RECEIVE_NEW_FAMILY_MESSAGE, (args) => {
                FamilyMessageReceived.Invoke(this, args);
            });

            _hubConnection.On <object>(_UNREAD_GROUP_MESSAGES, (args) => {
                try {
                    ResolvedUnreadGroupMessagesSignalArgs resolvedUnreadGroupMessagesSignalArgs = JsonConvert.DeserializeObject <ResolvedUnreadGroupMessagesSignalArgs>(args.ToString());
                    RefreshedUnreadGroupingMessages.Invoke(this, resolvedUnreadGroupMessagesSignalArgs);
                }
                catch (Exception exc) {
                    Debugger.Break();

                    throw new InvalidOperationException("GroupMessagingService on SignalR UnreadedMessages", exc);
                }
            });
        }
Exemplo n.º 2
0
        public void HandleChatMessage(NetworkMessage msg)
        {
            MsgMessage t = msg as MsgMessage;

            ChatMessage chat = new ChatMessage();

            chat.From     = t.From;
            chat.To       = t.To;
            chat.IsAction = t.MessageType == MsgMessage.MessageTypes.ActionMessage;
            chat.Message  = t.MessageText;
            GlobalChatLog.Add(chat);

            if (!UserLogs.ContainsKey(chat.From))
            {
                UserLogs.Add(chat.From, new UserChatLog());
            }

            UserLogs[chat.From].Messages.Add(chat);

            ChatMessageEventArgs args = new ChatMessageEventArgs(chat);

            if (chat.To == LocalPlayerID && DirectMessageReceived != null)
            {
                DirectMessageReceived.Invoke(this, args);
            }

            if (chat.To == LocalTeam && TeamMessageReceived != null)
            {
                TeamMessageReceived.Invoke(this, args);
            }

            if (ChatMessageReceived != null)
            {
                ChatMessageReceived.Invoke(this, args);
            }
        }