从网络上搜索到的Demo,自己进行了稍微的改动

Signala类库从https://github.com/erizet/SignalA获得,不过相关引用有错误,需要手动修正。

下载相关源码

  1. package com.zsoft.SignalADemo;
  2. import android.app.Activity;
  3. import org.json.JSONArray;
  4. import com.zsoft.signala.hubs.*;
  5. import com.zsoft.signala.hubs.HubConnection;
  6. import com.zsoft.signala.transport.StateBase;
  7. import com.zsoft.signala.transport.longpolling.*;
  8. import android.content.OperationApplicationException;
  9. import android.os.Bundle;
  10. import android.util.Log;
  11. import android.widget.EditText;
  12. /**
  13. * Created by King on 2016/8/3.
  14. */
  15. public class chatHubActivity extends Activity {
  16. private final static String TAG = "KING";
  17. private final static String HUB_URL = "http://192.168.1.110:8022/signalr/hubs";
  18. @Override
  19. protected void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.chat_hub);
  22. beginConnect();
  23. }
  24. /**
  25. * hub链接
  26. */
  27. private HubConnection conn = new HubConnection(HUB_URL, this, new LongPollingTransport()) {
  28. @Override
  29. public void OnError(Exception exception) {
  30. Log.d(TAG, "OnError=" + exception.getMessage());
  31. }
  32. @Override
  33. public void OnMessage(String message) {
  34. Log.d(TAG, "message=" + message);
  35. }
  36. @Override
  37. public void OnStateChanged(StateBase oldState, StateBase newState) {
  38. Log.d(TAG, "OnStateChanged=" + oldState.getState() + " -> " + newState.getState());
  39. }
  40. };
  41. /*
  42. * hub代理 panderman 2013-10-25
  43. */
  44. private IHubProxy hub = null;
  45. /**
  46. * 开启推送服务 panderman 2013-10-25
  47. */
  48. private void beginConnect() {
  49. try {
  50. //服务器端的HUB为ChatHub
  51. hub = conn.CreateHubProxy("ChatHub");
  52. } catch (OperationApplicationException e) {
  53. e.printStackTrace();
  54. }
  55. hub.On("addNewMessageToPage", new HubOnDataCallback() {
  56. @Override
  57. public void OnReceived(JSONArray args) {
  58. EditText chatText = (EditText) findViewById(R.id.chat_text);
  59. //chatText.setText(args.toString());
  60. for (int i = 0; i < args.length(); i++) {
  61. chatText.append(args.opt(i).toString());
  62. }
  63. }
  64. });
  65. conn.Start();
  66. }
  67. }

最新文章

  1. ISO学习中代码截图
  2. Android NDK学习之第一个实例---端口扫描
  3. oracle often commands
  4. asp.net C# 未能加载文件或程序集或它的某一个依赖项。需要强名称程序集。的解决办法
  5. 新手接触java
  6. Spring的qualifier标签
  7. AutoIt实现selenium上传文件
  8. UESTC 1854
  9. 安卓Intent(显式)
  10. Android应用开发学习笔记之多线程与Handler消息处理机制
  11. mongodb.open失效导致访问地址404
  12. linux undelete
  13. Django学习(4)表单,让数据库更美好
  14. monog和github学习
  15. 【43】Activity的几种LaunchMode及使用场景
  16. ImportError: cannot import name UnrewindableBodyError
  17. python学习笔记-调用接口
  18. SpringBoot解决ajax跨域问题
  19. Android-AndroidStudio-AVD启动不了-emulator: Process finished with exit code 1
  20. Linux内核分析--系统调用【转】

热门文章

  1. .Netcore 2.0 Ocelot Api网关教程(7)- 限流
  2. 在Flutter中构建布局
  3. logging配置
  4. C/C++.字符串分割
  5. JS节流和防抖的区分和实现详解
  6. openat与open的区别及用法示例
  7. [转帖]IIS7配置Gzip压缩
  8. [转帖]龙芯:Docker 配置与实践清单
  9. postgres csv日志和查看用户权限
  10. ios 输入框失去焦点,位置回调方法