push研究 Apache Mina探索初步

2022-07-04 16:09:17 字數 2254 閱讀 6345

雖然google為android開發者提供了gcm實現push,但是因為需要系統安裝了google play、google帳號、系統》2.2、google push伺服器在國外等多種原因,在中國,android上想實現push還需要自己努力。

當前最火的開源push是基於xmpp協議的androidpn。androidpn是基於mina框架的,所以這裡從mina框架開始入手。看mina官網的說明:

下面通過簡單的例子來學習mina的使用。首先建立服務端,工程正使用了3個jar包

看**:

public class hellomina 

}

hellomina的處理器:

/**

* hellomina的處理邏輯

* @author zhangxy

*/class minaserverhandler extends iohandleradapter

@override

public void messagereceived( iosession session, object message ) throws exception

system.err.println("收到客戶端發來的訊息::"+str);

stringbuilder buf = new stringbuilder(str.length());

for (int i = str.length() - 1; i >= 0; i--)

// and write it back.

session.write(buf.tostring());

}@override

public void sessionidle( iosession session, idlestatus status ) throws exception

@override

public void messagesent(iosession session, object message)

throws exception

@override

public void sessionclosed(iosession session) throws exception

@override

public void sessioncreated(iosession session) throws exception

@override

public void sessionopened(iosession session) throws exception

}

下面是client**,client沒有使用nio,使用的普通socket實現:

public class hellominaclient   

/**

* @param args

*/

public static void main(string args) throws exception

/**

* 傳送訊息

* @param out

*/

public void sendmessage(socket s) catch (ioexception e)

} public void receivemessage(socket s) catch (exception e)

} public void minaclient() throws exception catch (interruptedexception e) catch(exception e)finally catch (ioexception e)

} }

} }

socket作為短連線,即收發訊息後socket斷開一次,執行緒過5秒又建立連線收發訊息。

/**

* @author 張興業xy-zhang#163.com

* android開發高階群:278401545

*

*/

push研究 Apache Mina探索初步

雖然google為android開發者提供了gcm實現push,但是因為需要系統安裝了google play google帳號 系統 2.2 google push伺服器在國外等多種原因,在中國,android上想實現push還需要自己努力。當前最火的開源push是基於xmpp協議的androidp...

push函式分析

首先push函式是array原生的乙個方法,可以通過該方法將陣列元素載入到乙個json物件或者陣列中。下面是測試的方法 var mm var pushmethod array.prototype.push pushmethod.call mm,1 傳入單一的字串 result object 結果 生...

陣列push被覆蓋

之前在寫 定義個新的陣列,每次將最新的物件push到陣列中的時候被最後一條 覆蓋的機率特別大,這次終於明白是為什麼了。防止被覆蓋有以下幾種辦法 辦法1.this.users.foreach element 這裡面的關鍵點是重新例項化清空。this.ts new useritem 能用this,是因為...