最近用socket写了一个消息推送的demo,在这里和大家分享一下。

主要实现了:一台手机向另外一台手机发送消息,这两台手机可以随时自由发送文本消息进行通信,类似我们常用的QQ。

效果图


        

原理

手机通过socket发送消息到服务器,服务器每接收到一条消息之后,都会把这条消息放进一个messageList里面,服务器会不停地检测messageList是否含有消息,如果有的话就会根据messageList里面item的数据,推送到相应的另一端手机上面。

下面简单画了一个图来说明这个原理:

演示:手机客户端client1发送消息msg1到手机客户端client2,client2收到消息后回复msg2给client1

1.手机客户端client1发送一条“msg1”的文本消息到服务器;

2.服务器收到来自client1的“msg1”消息后,把它add进messageList里面;

3.服务器检测到messageList里面含有消息(开启服务器时就新建里一个检测messageList的线程,线程里面有一个死循环,用于不停检测messageList是否含有消息);

4.服务器读取消息数据,如读取到来自client1发给client2的消息“msg1”,那么服务器就把“msg1”推送到client2上;

5.client2检测到服务器推送的消息,做出相应的操作(如:震动、铃声、显示消息等);

6.client2接收到来自服务器推送的“msg1”消息后,client2也回复一条文本消息“msg2”给client1,此过程和client1发送消息给client2一样。

7.最后,client2就可以显示来自client1发送的消息“msg1”,而client1则可以显示来自client2的回复消息“msg2”

以上主要介绍了实现消息推送的原理,实现过程的代码见下一篇:Android socket 编程 实现消息推送二

本文转自:http://blog.csdn.net/zhangjm_123/article/details/41512833

Android socket 编程 实现消息推送(一)相关推荐

  1. Android socket 编程 实现消息推送(二)

    上篇文章Android socket 编程 实现消息推送(一)讲到socket编程的消息推送原理,现在我们来看看基于Android客户机socket编程实现消息推送的过程. 根据消息推送的原理图,我们 ...

  2. Android socket 编程 实现消息推送

    最近用socket写了一个消息推送的demo,在这里和大家分享一下. 主要实现了:一台手机向另外一台手机发送消息,这两台手机可以随时自由发送文本消息进行通信,类似我们常用的QQ. 效果图:    原理 ...

  3. java android消息推送_Android中使用socket通信实现消息推送的方法详解

    原理最近用socket写了一个消息推送的demo,在这里和大家分享一下. 主要实现了:一台手机向另外一台手机发送消息,这两台手机可以随时自由发送文本消息进行通信,类似我们常用的QQ. 效果图: 原理: ...

  4. Android:Umeng(友盟)消息推送(二)

    在已集成友盟统计的情况下:Android:Umeng(友盟)数据统计(一) 第一步: 个人中心---U-Push(消息推送)---添加新应用---从已有应用中添加  如图: 获得Appkey和secr ...

  5. 【转】android系统的APP消息推送机制

    原文:https://www.jianshu.com/p/f898a2c02b05 参考文章: http://blog.csdn.net/carson_ho/article/details/52862 ...

  6. Android集成阿里云消息推送的方法步骤

    一 创建App应用 1.1 在控制台发(https://mhub.console.aliyun.com)的App列表页,点击页面产品列表中"添加产品"的图标即可创建一个新的产品(产 ...

  7. Android端消息推送总结:实现原理、心跳保活、遇到的问题等

    前言 最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些东西偏底层硬件和通信行业, 我对这些一窍不通, 只能说说自己的理解. 为什 ...

  8. 浅谈iOS和Android后台实时消息推送的原理和区别

    http://www.52im.net/thread-286-1-1.html 前言 iOS和Android上的实时消息推送差异很大,往小了说是技术实现的差异,往大了说是系统实现理念的不同.实时消息推 ...

  9. Android 项目必备(三十八)-->APP 消息推送

    文章目录 前言 推送的实现方式 1. C2DM 2. 轮询 3. SMS信令推送 4. MQTT协议 5. XMPP协议 6. 使用第三方平台 Android 中 MQTT 的使用 1. 集成 2. ...

最新文章

  1. 机房收费系统=三层+设计模式
  2. java 自旋锁_java锁的种类以及辨析(一):自旋锁
  3. 查看win10版本方法,及win10升级方法
  4. Android之jni编译出现no matching function for call to ‘_JNIEnv::GetJava(JNIEnv* , Java VM**)‘解决办法)‘
  5. elk入门_ELK堆栈入门
  6. java 使用vsphere 创建虚拟机‘_Java数组的创建及使用
  7. 46、练习:输出指定目录下的所有文件名称
  8. Eduline在线教育系统源码 带完整修复后台
  9. 用Visual Studio调试asp程序
  10. Linux学习之Makefile编写
  11. ceph rbd mysql_ceph-rbd使用
  12. 业务流程管理模型优化设计
  13. 苹果双系统怎么切换_电脑双系统如何安装,使用小白一键重装系统
  14. JQuery(1)——JQuery如何读
  15. 015-lissajous server
  16. 数据分析报告怎么写?
  17. MATLAB对一子数组赋值
  18. YOLOv6训练时报错解决方法
  19. 【调剂】北京科技大学钢铁共性技术协同创新中心2021年硕士拟接收调剂公告
  20. QGIS噱头笔记--(1)QGIS概要了解

热门文章

  1. 打开Mybatis核心配置文件SqlMapConfig.xml的代码提示功能
  2. 2021年12届蓝桥杯C++B组省赛
  3. 【c++】8.map和vector容器查找、删除指定元素、emplace、insert
  4. 计算机视觉与模式识别(1)—— A4纸边缘提取
  5. Java 守护线程概述
  6. 论面向组合子程序设计方法 之 燃烧的荆棘
  7. 漫画:优秀的程序员具备哪些属性?
  8. CUDA系列学习(三)GPU设计与结构QA coding练习
  9. 稀疏表示介绍(中)、(下)
  10. Matlab之if-else-end分枝语句