SignalA是老外写的用于实现.net端推送消息至安卓端的实现,支持版本为android 2.3或以上,由于我的版本最低是2.2,所以只有把源码下下来自己改,如果你觉得太多了可自己编译成jar引用,本人不才,对java不是很熟悉,如果此版本中有错误还请大家指出来,此图显示的是安卓2.2与4.0的版本。

chat_hub代码:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical" >
  6. <EditText
  7. android:id="@+id/chat_text"
  8. android:layout_width="match_parent"
  9. android:layout_height="match_parent"
  10. android:layout_margin="20dp"
  11. android:gravity="top"
  12. android:inputType="textMultiLine"
  13. android:text="" />
  14. </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代码:

  1. package com.loan.zhironghuimobile;
  2. import org.json.JSONArray;
  3. import com.zsoft.SignalA.Hubs.HubConnection;
  4. import com.zsoft.SignalA.Hubs.HubOnDataCallback;
  5. import com.zsoft.SignalA.Hubs.IHubProxy;
  6. import com.zsoft.SignalA.Transport.StateBase;
  7. import com.zsoft.SignalA.Transport.Longpolling.LongPollingTransport;
  8. import android.app.Activity;
  9. import android.content.OperationApplicationException;
  10. import android.os.Bundle;
  11. import android.widget.EditText;
  12. public class ChatHub extends Activity {
  13. private final static String HUB_URL="http://192.168.1.200:82/signalr/hubs";
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState) {
  16. // TODO Auto-generated method stub
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.chat_hub);
  19. beginConnect();
  20. }
  21. /**
  22. * hub链接
  23. */
  24. private HubConnection conn=new HubConnection(HUB_URL, this, new LongPollingTransport()) {
  25. @Override
  26. public void OnError(Exception exception) {
  27. }
  28. @Override
  29. public void OnMessage(String message) {
  30. }
  31. @Override
  32. public void OnStateChanged(StateBase oldState, StateBase newState) {
  33. }
  34. };
  35. /**
  36. * hub代理 panderman 2013-10-25
  37. */
  38. private IHubProxy hub = null;
  39. /**
  40. * 开启推送服务 panderman 2013-10-25
  41. */
  42. private void beginConnect(){
  43. try {
  44. hub=conn.CreateHubProxy("ChatHub");
  45. } catch (OperationApplicationException e) {
  46. e.printStackTrace();
  47. }
  48. hub.On("addNewMessageToPage", new HubOnDataCallback()
  49. {
  50. @Override
  51. public void OnReceived(JSONArray args) {
  52. EditText chatText=(EditText)findViewById(R.id.chat_text);
  53. //chatText.setText(args.toString());
  54. for(int i=0; i<args.length(); i++)
  55. {
  56. chatText.append(args.opt(i).toString());
  57. }
  58. }
  59. });
  60. conn.Start();
  61. }
  62. }
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来写

SignalA修改过后源码下载

更多用法参照SignalA官方文档

SignalR推送服务在Android的实现 SignalA的更多相关文章

  1. IOS JPush 集成步骤(极光远程推送解决方案,支持android和iOS两个平台)

    ●  什么是JPush ●  一套远程推送解决方案,支持android和iOS两个平台 ●  它能够快捷地为iOS App增加推送功能,减少集成APNs需要的工作量.开发复杂 度 ●  更多的信息,可 ...

  2. (转)android(SignalA)接收.net(SignalR)推送过来的消息

    从网络上搜索到的Demo,自己进行了稍微的改动 Signala类库从https://github.com/erizet/SignalA获得,不过相关引用有错误,需要手动修正. 下载相关源码 packa ...

  3. signalr推送消息

    参考:Tutorial: Getting Started with SignalR 2 and MVC 5 环境:vs2013,webapi2,entity framework6.0 实现效果:当用户 ...

  4. JPush (极光推送) For Xamarin.Android

    官方教程上讲的是 GCM (Google Cloud Messaging) , 不过 GFW 是 GCM 过不去的坎. 极光推送 JPush 是国内的一个不错的替代方案. JPush 提供的 API ...

  5. 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 ...

  6. jpush-react-native 推送功能(Android 篇)

    github原地址 极光推送官方支持的 React Native 插件 安装 npm install jpush-react-native --savenpm install jcore-react- ...

  7. C#服务端通过Socket推送数据到Android端App中

    需求: 描述:实时在客户端上获取到哪些款需要补货. 要求: 后台需要使用c#,并且哪些需要补货的逻辑写在公司框架内,客户端采用PDA(即Android客户端 版本4.4) . 用户打开了补货通知页面时 ...

  8. Asp.net Core3.1+Vue 使用SignalR推送数据

    本文就简单使用 往前端页面推送消息 SignalR 是什么 SignalR是一个.NET Core/.NET Framework的开源实时框架. SignalR的可使用Web Socket, Serv ...

  9. 基于SuperSocket的IIS主动推送消息给android客户端

    在上一篇文章<基于mina框架的GPS设备与服务器之间的交互>中,提到之前一直使用superwebsocket框架做为IIS和APP通信的媒介,经常出现无法通信的问题,必须一天几次的手动回 ...

随机推荐

  1. spark学习3(sqoop1.4.6安装)

    sqoop目前有两个版本sqoop1和sqoop2,这里安装的是sqoop1版本 1)将软件上传到spark1节点 2)修改权限 [root@spark1 sqoop]# chmod u+x sqoo ...

  2. ZooKeeper服务-操作(API、集合更新、观察者、ACL)

    操作 create:创建一个znode(必须要有父节点)delete:删除一个znode(该znode不能有任何子节点)exists:测试一个znode是否存在并且查询它的元数据getACL,setA ...

  3. Maven——安装配置

    MAVEN 一.介绍:(待填) 二.下载:http://maven.apache.org/download.cgi(官网下载) 选择二进制的zip文件,这种的可直接使用. 三.环境配置 1.前提条件: ...

  4. windows DPAPI加密解密学习

    #include "stdafx.h" #include <windows.h> #include <Wincrypt.h> #include <io ...

  5. 关于UML方法学图中类之间的关系:依赖,泛化,关联

    类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什 ...

  6. python3 使用pymysql

    #! /usr/bin/env python3 # coding = utf-8 import random import pymysql # 连接数据库函数 def connDB(data): co ...

  7. if 条件判断 和 判断总结---shell脚本

    本文主要介绍了Shell脚本IF条件判断和判断条件总结,本文先是给出了IF条件判断的语法,然后给出了常用的判断条件总结,需要的朋友可以参考下. 前言: 无论什么编程语言都离不开条件判断.SHELL也不 ...

  8. 分享知识-快乐自己:mysql数据库常见两种引擎

    mysql的常用引擎 在MySQL数据库中,常用的引擎主要就是2个:Innodb和MyIASM. 首先: 1.简单介绍这两种引擎,以及该如何去选择. 2.这两种引擎所使用的数据结构是什么. Innod ...

  9. 终端命令对字符串进行sha1、md5、base64、urlencode/urldecode

    sha1.md5.base64 mac $ echo -n foo|shasum 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 - $ 2c26b46b68ffc6 ...

  10. Mysql进程管理

    mysql> show processlist;+----+------+-----------+------+---------+------+-------+---------------- ...