zoukankan      html  css  js  c++  java
  • Spark研究笔记9:重要的工厂类PresenceManager(原创) CVT

    PresenceManager用于用户的在线状态和模式处理,类 Presence 位于org.jivesoftware.smack.packet,说明:

    public enum Type {
    
           /**
            * The user is available to receive messages (default).
            */
            available,
    
            /**
             * The user is unavailable to receive messages.
             */
            unavailable,
    
            /**
             * Request subscription to recipient's presence.
             */
            subscribe,
    
            /**
             * Grant subscription to sender's presence.
             */
            subscribed,
    
            /**
             * Request removal of subscription to sender's presence.
             */
            unsubscribe,
    
            /**
             * Grant removal of subscription to sender's presence.
             */
            unsubscribed,
    
            /**
             * The presence packet contains an error message.
             */
            error
        }
    
        /**
         * An enum to represent the presence mode.
         */
        public enum Mode {
    
            /**
             * Free to chat.
             */
            chat,
    
            /**
             * Available (the default).
             */
            available,
    
            /**
             * Away.
             */
            away,
    
            /**
             * Away for an extended period of time.
             */
            xa,
    
            /**
             * Do not disturb.
             */
            dnd
        }

    /**
         * Returns true if the user is online.
         *
         * @param jid the jid of the user.
         * @return true if online.
         */
        public static boolean isOnline(String jid) {
            final Roster roster = SparkManager.getConnection().getRoster();
            Presence presence = roster.getPresence(jid);
            return presence.isAvailable();
        }
    
        /**
         * Returns true if the user is online and their status is available or free to chat.
         *
         * @param jid the jid of the user.
         * @return true if the user is online and available.
         */
        public static boolean isAvailable(String jid) {
            final Roster roster = SparkManager.getConnection().getRoster();
            Presence presence = roster.getPresence(jid);
            return presence.isAvailable() && !presence.isAway();
        }
    
        /**
         * Returns true if the user is online and their mode is available or free to chat.
         *
         * @param presence the users presence.
         * @return true if the user is online and their mode is available or free to chat.
         */
        public static boolean isAvailable(Presence presence) {
            return presence.isAvailable() && !presence.isAway();
        }
    
        /**
         * 返回用户状态
         *
         * @param jid the users jid.
         * @return the users presence.
         */
        public static Presence getPresence(String jid) {
            final Roster roster = SparkManager.getConnection().getRoster();
            return roster.getPresence(jid);
        }
    
        /**
         * JID完整全称,例如(ex. derek@jivesoftware.com --> derek@jivesoftware.com/spark)
         */
        public static String getFullyQualifiedJID(String jid) {
            final Roster roster = SparkManager.getConnection().getRoster();
            Presence presence = roster.getPresence(jid);
            return presence.getFrom();
        }
  • 相关阅读:
    hibernate--could not initialize proxy
    20160509-hibernate--继承映射
    CF1111C Creative Snap
    CF1097D Makoto and a Blackboard
    CF1091D New Year and the Permutation Concatenation
    CF1096D Easy Problem
    CF1076E Vasya and a Tree
    CF1081C Colorful Bricks
    CF1081E Missing Numbers
    CF1093D Beautiful Graph
  • 原文地址:https://www.cnblogs.com/openfire/p/3047621.html
Copyright © 2011-2022 走看看