XMPP 通訊之Asmack(二) 登錄

 /**
     * 登錄方法
     * 這部分相對簡單,登錄以前判斷XMPP是否鏈接,登錄成功將用戶狀態改成在線
     * @param account
     * @param password
     * @return
     */
    public static boolean login(Context context, GeneralChatRoomHandler mhandler, CharRoomCore successful, String account, String password) {
        ChatRoomInfo.account = account;
        try {
            LogUtil.w("login is error");
            if (XmppTool.getInstance().getConnection(context, mhandler, successful) == null) {// 若是網絡沒有鏈接上
                LogUtil.i("沒有網絡i");
                return false;
            }
            /** 登陸
             *  SASL的認證方式 在客戶端要聲明,客戶端必須支持PLAIN模式--用戶名和密碼經過網絡傳輸,不安全
             *  關於SASL認證,有興趣的能夠查詢下其餘資料
             * */
            SASLAuthentication.supportSASLMechanism("PLAIN", 0);
            XmppTool.getInstance().getConnection(context, mhandler, successful).login(account, password);
            // 設置登陸狀態:在線
            Presence presence = new Presence(Presence.Type.available);
            XmppTool.getInstance().getConnection(context, mhandler, successful).sendPacket(presence);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            LogUtil.w("login close");
            //登陸失敗記得將鏈接關閉
            XmppTool.getInstance().closeConnection();
        }
        return false;
    }

  登錄部分上面的註釋已經寫的很清楚,但我也提一點,登錄操做是異步的,實際使用還須要將其放到線程裏;html

 關於如何創建鏈接請參考:http://www.cnblogs.com/ZhangXiangQian/p/5254840.html安全

相關文章
相關標籤/搜索