使用SignalR推送服務(wù)在Android的實(shí)現(xiàn) SignalA
由于我的版本最低是2.2,所以只有把源碼下下來自己改,如果你覺得太多了可自己編譯成jar引用,本人不才,對java不是很熟悉,如果此版本中有錯(cuò)誤還請大家指出來,此圖顯示的是安卓2.2與4.0的版本。

chat_hub代碼:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/chat_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="20dp"
android:gravity="top"
android:inputType="textMultiLine"
android:text="" />
</LinearLayout>
ChatHub.java代碼:
package com.loan.zhironghuimobile;
import org.json.JSONArray;
import com.zsoft.SignalA.Hubs.HubConnection;
import com.zsoft.SignalA.Hubs.HubOnDataCallback;
import com.zsoft.SignalA.Hubs.IHubProxy;
import com.zsoft.SignalA.Transport.StateBase;
import com.zsoft.SignalA.Transport.Longpolling.LongPollingTransport;
import android.app.Activity;
import android.content.OperationApplicationException;
import android.os.Bundle;
import android.widget.EditText;
public class ChatHub extends Activity {
private final static String HUB_URL="http://192.168.1.200:82/signalr/hubs";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.chat_hub);
beginConnect();
}
/**
* hub鏈接
*/
private HubConnection conn=new HubConnection(HUB_URL, this, new LongPollingTransport()) {
@Override
public void OnError(Exception exception) {
}
@Override
public void OnMessage(String message) {
}
@Override
public void OnStateChanged(StateBase oldState, StateBase newState) {
}
};
/**
* hub代理 panderman 2013-10-25
*/
private IHubProxy hub = null;
/**
* 開啟推送服務(wù) panderman 2013-10-25
*/
private void beginConnect(){
try {
hub=conn.CreateHubProxy("ChatHub");
} catch (OperationApplicationException e) {
e.printStackTrace();
}
hub.On("addNewMessageToPage", new HubOnDataCallback()
{
@Override
public void OnReceived(JSONArray args) {
EditText chatText=(EditText)findViewById(R.id.chat_text);
//chatText.setText(args.toString());
for(int i=0; i<args.length(); i++)
{
chatText.append(args.opt(i).toString());
}
}
});
conn.Start();
}
}
SignalR服務(wù)器端代碼參照http://www.asp.net/signalr來寫
相關(guān)文章
解析android res 運(yùn)行錯(cuò)誤的問題
本篇文章是對android中res運(yùn)行錯(cuò)誤的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
輕松實(shí)現(xiàn)Rxjava定時(shí)器功能
這篇文章主要為大家詳細(xì)介紹了Rxjava實(shí)現(xiàn)定時(shí)器功能的兩種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
Flutter實(shí)戰(zhàn)之自定義日志打印組件詳解
這篇文章主要介紹了Flutter實(shí)戰(zhàn)之自定義日志打印組件詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03
c++ mk文件出錯(cuò)Jni調(diào)用產(chǎn)生java.lang.UnsatisfiedLinkError錯(cuò)誤解決方法
錯(cuò)誤產(chǎn)生在我把方法從c語言轉(zhuǎn)為c++語言后產(chǎn)生的,后來檢查到這種錯(cuò)誤是因?yàn)閙k文件出錯(cuò),加載c文件和加載c++的文件所用的代碼不一樣,下面請看2013-11-11
Android 實(shí)現(xiàn)列表倒計(jì)時(shí)功能
這篇文章主要介紹了Android 實(shí)現(xiàn)列表倒計(jì)時(shí)功能,代碼很簡單,沒有任何難度,使用RecyclerView+BaseRecyclerViewAdapterHelper列表實(shí)現(xiàn),需要的朋友可以參考下2020-03-03
Android下的POS打印機(jī)調(diào)用的簡單實(shí)現(xiàn)
本篇文章主要介紹了Android下的POS打印機(jī)調(diào)用的簡單實(shí)現(xiàn),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04
Flutter事件監(jiān)聽與EventBus事件的應(yīng)用詳解
EventBus的核心是基于Streams。它允許偵聽器訂閱事件并允許發(fā)布者觸發(fā)事件,使得不同組件的數(shù)據(jù)不需要一層層傳遞,可以直接通過EventBus實(shí)現(xiàn)跨組件通訊2023-04-04
Android Drawable和Bitmap的轉(zhuǎn)換實(shí)例詳解
這篇文章主要介紹了Android Drawable和Bitmap的轉(zhuǎn)換實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05

