SignalR推送服务在Android的实现 SignalA
SignalA是老外写的用于实现.net端推送消息至安卓端的实现,支持版本为android 2.3或以上,由于我的版本最低是2.2,所以只有把源码下下来自己改,如果你觉得太多了可自己编译成jar引用,本人不才,对java不是很熟悉,如果此版本中有错误还请大家指出来,此图显示的是安卓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>
<?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;
- /**
- * 开启推送服务 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();
- }
- }
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;
/**
* 开启推送服务 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服务器端代码参照http://www.asp.net/signalr来写
SignalR推送服务在Android的实现 SignalA的更多相关文章
- IOS JPush 集成步骤(极光远程推送解决方案,支持android和iOS两个平台)
● 什么是JPush ● 一套远程推送解决方案,支持android和iOS两个平台 ● 它能够快捷地为iOS App增加推送功能,减少集成APNs需要的工作量.开发复杂 度 ● 更多的信息,可 ...
- (转)android(SignalA)接收.net(SignalR)推送过来的消息
从网络上搜索到的Demo,自己进行了稍微的改动 Signala类库从https://github.com/erizet/SignalA获得,不过相关引用有错误,需要手动修正. 下载相关源码 packa ...
- signalr推送消息
参考:Tutorial: Getting Started with SignalR 2 and MVC 5 环境:vs2013,webapi2,entity framework6.0 实现效果:当用户 ...
- JPush (极光推送) For Xamarin.Android
官方教程上讲的是 GCM (Google Cloud Messaging) , 不过 GFW 是 GCM 过不去的坎. 极光推送 JPush 是国内的一个不错的替代方案. JPush 提供的 API ...
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序
SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 异常汇总:http://www ...
- jpush-react-native 推送功能(Android 篇)
github原地址 极光推送官方支持的 React Native 插件 安装 npm install jpush-react-native --savenpm install jcore-react- ...
- C#服务端通过Socket推送数据到Android端App中
需求: 描述:实时在客户端上获取到哪些款需要补货. 要求: 后台需要使用c#,并且哪些需要补货的逻辑写在公司框架内,客户端采用PDA(即Android客户端 版本4.4) . 用户打开了补货通知页面时 ...
- Asp.net Core3.1+Vue 使用SignalR推送数据
本文就简单使用 往前端页面推送消息 SignalR 是什么 SignalR是一个.NET Core/.NET Framework的开源实时框架. SignalR的可使用Web Socket, Serv ...
- 基于SuperSocket的IIS主动推送消息给android客户端
在上一篇文章<基于mina框架的GPS设备与服务器之间的交互>中,提到之前一直使用superwebsocket框架做为IIS和APP通信的媒介,经常出现无法通信的问题,必须一天几次的手动回 ...
随机推荐
- QT5中如何使用QFtp类
QT5中如何使用QFtp类 http://2662597.blog.51cto.com/2652597/1279806 由于QT5对QML的支持有很大的改进,所以打算将原来基于QT4的程序移植到QT5 ...
- hdu 5895 Mathematician QSC 指数循环节+矩阵快速幂
Mathematician QSC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe ...
- 配置网卡为vlan trunk
http://www.microhowto.info/tutorials/802.1q.html Configure an Ethernet interface as a VLAN trunk hos ...
- Struts2架构流程
[Struts2] Action实现. interceptor实现. Filter工作原理. 使用 拦截器来处理请求. 业务逻辑控制器与 Servlet API分离. ================ ...
- Office 2016 (Preview)
Office 2016 Preview for MAC (预览版) https://products.office.com/zh-CN/mac/mac-preview 安装下载:http://go.m ...
- 51nod 1099 贪心/思维
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1099 1099 任务执行顺序 基准时间限制:1 秒 空间限制:13107 ...
- 浅谈Vue个性化dashBoard 布局
dashBoard布局在管理系统使用比较多:使用自己喜欢的方式进行自定义布局 使用npm 安装 npm install vue-grid-layout 全局使用 import vueGridLayou ...
- 遍历Newtonsoft.Json.Linq.JObject
JObject 遍历: 引用命名空间:using Newtonsoft.Json.Linq; JObject _jObject = JObject.Parse("{'ID':'001','M ...
- 使用javah生成jni 头文件和使用ndk编译so库
1.jni 首先clean Project,在makeProject生成对应的class文件 然后点出命名框,输入命令: cd app/build/intermediates/classes/debu ...
- hdu-1102-Constructing Roads(Prim算法模板)
题目链接 /* Name:hdu-1102-Constructing Roads Copyright: Author: Date: 2018/4/18 9:35:08 Description: pr ...