Пример #1
0
        void Listener_OnGroupUpdated(FizzGroupUpdateEventData eventData)
        {
            FizzGroupModel group = GetGroup(eventData.GroupId);

            if (group != null && OnGroupUpdated != null)
            {
                group.Update(eventData);
                OnGroupUpdated.Invoke(group);
            }
        }
        private void OnMessage(object sender, byte[] messagePayload)
        {
            try
            {
                string           payload = Encoding.UTF8.GetString(messagePayload);
                FizzTopicMessage message = new FizzTopicMessage(payload);

                FizzLogger.D("OnMessage with id: " + message.Id);

                switch (message.Type)
                {
                case "CMSGP":
                    if (OnMessagePublished != null)
                    {
                        OnMessagePublished.Invoke(AdaptTo(message));
                    }
                    break;

                case "CMSGU":
                    if (OnMessageUpdated != null)
                    {
                        OnMessageUpdated.Invoke(AdaptTo(message));
                    }
                    break;

                case "CMSGD":
                    if (OnMessageDeleted != null)
                    {
                        OnMessageDeleted.Invoke(AdaptTo(message));
                    }
                    break;

                case "GRPMA":
                    if (OnGroupMemberAdded != null)
                    {
                        OnGroupMemberAdded.Invoke(ParseMemberEventData(message));
                    }
                    break;

                case "GRPMU":
                    if (OnGroupMemberUpdated != null)
                    {
                        OnGroupMemberUpdated.Invoke(ParseMemberEventData(message));
                    }
                    break;

                case "GRPMR":
                    if (OnGroupMemberRemoved != null)
                    {
                        OnGroupMemberRemoved.Invoke(ParseMemberEventData(message));
                    }
                    break;

                case "GRPU":
                    if (OnGroupUpdated != null)
                    {
                        OnGroupUpdated.Invoke(ParseGroupUpdateEventData(message));
                    }
                    break;

                case "USRPU":
                    if (OnUserUpdated != null)
                    {
                        OnUserUpdated.Invoke(ParsePresenceUpdateEventData(message));
                    }
                    break;

                case "USRU":
                    if (OnUserUpdated != null)
                    {
                        OnUserUpdated.Invoke(ParseUserUpdateEventData(message));
                    }
                    break;

                default:
                    FizzLogger.W("unrecognized packet received: " + payload);
                    break;
                }
            }
            catch
            {
                FizzLogger.W("received invalid message: " + messagePayload);
            }
        }