コード例 #1
0
 void Listener_OnUserUpdated(FizzUserUpdateEventData eventData)
 {
     if (OnUserUpdated != null)
     {
         FizzUserModel user = Users[eventData.UserId];
         if (user != null)
         {
             user.Update(eventData);
             OnUserUpdated.Invoke(user);
         }
     }
 }
コード例 #2
0
        private void GetUser(GetUserRequest request)
        {
            Client.Chat.Users.GetUser(request.UserId, (userMeta, ex) =>
            {
                FizzUserModel user = null;
                if (ex == null)
                {
                    user = new FizzUserModel(userMeta, Client);

                    Users[user.Id] = user;
                }
                FizzUtils.DoCallback(user, ex, request.Callback);
                requestQueue.Dequeue();
                if (requestQueue.Count > 0)
                {
                    GetUser(requestQueue.Peek());
                }
            });
        }
コード例 #3
0
        private void FetchProfilesAndSubscibe()
        {
            if (Client.State == FizzClientState.Closed)
            {
                FizzLogger.W("FizzClient should be opened before subscribing user.");
                return;
            }

            foreach (KeyValuePair <string, FizzUserModel> entry in Users)
            {
                GetUser(entry.Key, (user, ex) =>
                {
                    if (ex == null)
                    {
                        FizzUserModel existingUser = entry.Value;
                        existingUser.Apply(user);
                        if (existingUser.IsSubscribed)
                        {
                            existingUser.Subscribe(null);
                        }
                    }
                });
            }
        }
コード例 #4
0
 void OnUserUpdate(FizzUserModel user)
 {
     SetPresenceStatus(user.Id, user.Online);
 }