public void OnServerPush(string response)
        {
            GamebaseLog.Debug(response, this);

            ServerPushMessage message = JsonMapper.ToObject<ServerPushMessage>(response);
            CommonResponse.Header.ServerPush serverPush = message.header.serverPush;

            if (serverPush.type.Equals(GamebaseServerPushType.APP_KICKOUT) == true
                && string.IsNullOrEmpty(GamebaseImplementation.Instance.GetUserID()) == true)
            {
                return;
            }

            if (stampSet.Add(serverPush.stamp) == false)
            {
                return;
            }

            if (serverPush.stopHeartbeat == true)
            {
                Heartbeat.Instance.StopHeartbeat();
                Introspect.Instance.StopIntrospect();
            }            

            if (serverPush.logout == true)
            {
                Gamebase.Logout(null);
            }

            if (serverPush.disconnect == true)
            {
                WebSocket.Instance.Disconnect();
            }

            GamebaseSystemPopup.Instance.ShowServerPushPopup(message.popup);            
            
            SendServerPushMessage(serverPush.type, message.result);
        }