【Android】Socket连接-RxSocket

标签: rx2 socket 长连接 android
7人阅读 评论(0) 收藏 举报
GitHub项目地址

功能简介

  • 服务器断开、网络错误等各种方式导致连接失败都会自动一直重连上服务器。
  • 心跳反馈,设置一个时间,每隔一个时间向服务器发送数据,保持在线。

使用方式(Android端)

Android端扫码下载体验

RxSocket.png

1.初始化RxSocket

PS.此项目使用Rx2

//初始化
RxSocket rxSocket = RxSocket.getInstance();

2.重连机制连接

/**
* 重连机制的订阅
* 参数1:服务器地址
* 参数2:端口号
*/
rxSocket.reconnection(HOST, PORT)
        .subscribe(s -> Log.d("server response data", s));

3.心跳重连机制连接(不可动态改变心跳数据)

/**
* 心跳、重连机制的订阅
* 参数1:服务器地址
* 参数2:端口号
* 参数3:心跳发送时间
* 参数4:心跳发送信息
*/
rxSocket.reconnectionAndHeartBeat(HOST, PORT, 5, "---Hello---")
        .subscribe(s -> Log.d("server response data", s));

4.心跳重连机制连接(可动态改变心跳数据)

动态改变心跳数据主要针对于,比如电量cpu内存温度等情况需要动态设置心跳数据。

/**
* 心跳、重连机制的订阅(心跳数据动态改变)
* 参数1:服务器地址
* 参数2:端口号
* 参数3:心跳发送时间
*/
rxSocket.reconnectionAndHeartBeat(HOST, PORT, 5)
        .flatMap(aLong -> mRxSocket.send(mEtHeartText.getText().toString()))
        .compose(mRxSocket.<String>heartBeatChange())
        .subscribe(s -> Log.d("server response data", s));

5.发送数据

mSubscribe = rxSocket.send("hello").subscribe()

6.应用退出或者不需要socket取消订阅

//取消订阅
mSubscribe.dispose();

使用方式(服务端)

使用此软件就不用自己写服务器,先模拟自己测试完毕再跟服务器联调。
服务端模拟软件下载(仅支持Windows系统)
按照图片标注设置就行了。测试是否接收到数据能否发送数据就行了。

网络调试助手.png

意见反馈

如果遇到问题或者好的建议,请反馈到:issue、927195249@qq.com 或者LiangLuDev@gmail.com

如果觉得对你有用的话,赞一下吧!

查看评论

Socket长连接Android端心跳机制实现

前面用golang写的socket服务端请移步:http://blog.csdn.net/u010072711/article/details/760821761. 把socket链接和心跳功能都放在...
  • u010072711
  • u010072711
  • 2017-07-25 22:36:27
  • 6228

关于Android使用socket与PC连接的问题

模拟器上能运行,真机上运行不了,这个问题一直困扰了我很久了。后来发现其实是很简单的一个道理~...
  • kingtracy8
  • kingtracy8
  • 2017-03-25 12:51:03
  • 378

Android通过socket连接服务器(PC)

Server端package com.test;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.F...
  • c5153000
  • c5153000
  • 2011-06-15 16:46:00
  • 17474

Android中判断socket通信断开

你好!这里是风筝的博客,欢迎和我一起交流。 如果本篇博客对您有帮助,或许可以在下方评论给我留个言呀。 可以引起网络连接关闭的情况有以下4种: 1.  直接调用Socket类的close方法...
  • Guet_Kite
  • Guet_Kite
  • 2017-04-21 19:20:25
  • 4190

socket Rx

tasklet_init(&ap->tsk, ppp_async_process, (unsigned long) ap); ppp_async_process -> ppp_input -> pp...
  • u011279649
  • u011279649
  • 2013-12-05 15:06:37
  • 748

android wifi 热点连接以及Socket通信(经测试有效)

  • 2013年07月31日 15:38
  • 1.6MB
  • 下载

socket实现TCP通信_TCP连接android与单片机(2016_03_21)

socket实现TCP通信_android
  • gao2419956747
  • gao2419956747
  • 2016-03-21 10:55:58
  • 1770

android客户端在多个界面切换时保持socket的链接的实例

鉴于自己的痛苦,研究一个socket在多个界面切换时保持链接的问题,令我纠结很久,现在我提供客户端的源码给有需要的人参考。 1、ApplicationUtil类: import java.io.D...
  • qingzi635533
  • qingzi635533
  • 2013-05-27 14:05:25
  • 11773

android实现socket连接(服务器端)

服务器端运行在android手机上,和上一篇是一个Demo,大家注意给应用加权限,写的有点乱,有些变量没有用到。 如果是和电脑进行通信,注意编码问题,我把两种编码都写出来了,有不明白可以留言。 ...
  • wshngyf
  • wshngyf
  • 2016-03-07 22:59:26
  • 591

Android 基于TCP的 Socket 编程实现(结合 okio)

两个进程如果要进行通讯最基本的一个前提就是能够唯一的标识一个进程,在本地进程通讯中我们可以使用 PID 来唯一标识一个进程,但 PID 只在本地是唯一的,网络中两个进程 PID 冲突几率很大,这时我们...
  • yhaolpz
  • yhaolpz
  • 2017-03-31 16:35:17
  • 9825
    个人资料
    持之以恒
    等级:
    访问量: 288
    积分: 93
    排名: 142万+
    文章分类
    文章存档