autobahn-0.5.0.jar 文件的地址: http://pan.baidu.com/s/1slQYcKP
使用websocket好简单方便,据一天来我们公司的大神说:websocket是封装好的成熟的框架,比socket更安全,用起来方便。在原有websocket的基础上加了一个心跳包的功能。
并且设置了一个链接超时的时间限制。代码还需要不停地优化。
package com.example.administrator.connmanager;import android.content.Context;import android.os.Handler;import android.os.TokenWatcher;import android.util.Log;import java.util.Timer;import java.util.TimerTask;import de.tavendo.autobahn.WebSocketConnection;import de.tavendo.autobahn.WebSocketException;import de.tavendo.autobahn.WebSocketHandler;import de.tavendo.autobahn.WebSocketOptions;/** * @author* @version 1.0 * @date 2016/9/8 0008 */public class ConnManager {private WebSocketConnection mWebSocketConnection;private Timer mTimer;private TimerTask  mTimerTask;private WebSocketOptions mWebSocketOptions;private Context mContext;public static List<String> list=new ArrayList<String>();    String uri=null;public ConnManager(Context context,String ipadress,int port){mWebSocketConnection=new WebSocketConnection();mTimer=new Timer();this.uri="ws://"+ipadress+":"+port;mWebSocketOptions=new WebSocketOptions();        setwebsocketoptions();this.mContext=context;
       //心跳包,不停地发送消息给服务器mTimerTask=new TimerTask() {@Overridepublic void run() {mWebSocketConnection.sendTextMessage("");                Log.i("yuhan", "连接中。。。。。");            }        };    }
    //链接服务器端的代码public void connect(){try {mWebSocketConnection.connect(uri, new WebSocketHandler() {@Overridepublic void onOpen() {                    Log.d("yuhan", "Status: Connected to " + uri);                    sendHB();                }@Overridepublic void onTextMessage(String payload) {                    Log.d("yuhan", "Got echo: " + payload);
if(payload.equals("用户刷新-已收到")) {nowdate=System.currentTimeMillis();
}
                }@Overridepublic void onClose(int code, String reason) {                    Log.d("yuhan", "Connection lost."+reason);                }            },mWebSocketOptions);        } catch (WebSocketException e) {            Log.d("yuhan", e.toString());        }    }
//开启心跳包,每一秒发送一次消息,如果返回lost再重连public void sendHB(){mTimer.schedule(mTimerTask, 1000, 1000);
//每次发送心跳包,服务器接收到响应就会返回一个值,如果查过5s还没有收到返回值,那么就判定是断网。
if((System.currentTimeMillis()-nowdate)>5000&&nowdate!=0) {mWebSocketConnection.disconnect();mTimer.cancel();// connect();
    Log.i("yuhan", "" + System.currentTimeMillis() + "nowdate:" + nowdate + mWebSocketConnection.isConnected());return;
}
    }public void sendMessage(String data){mWebSocketConnection.sendTextMessage(data);    }
//调整链接是否超时的时间限制public void setwebsocketoptions(){mWebSocketOptions.setSocketConnectTimeout(30000);mWebSocketOptions.setSocketReceiveTimeout(10000);    }}

websocket autobahn jar包的用法相关推荐

  1. Java反编译Jar包和Android APK(类似.NET Reflector)

    JD-GUI 这个JD-GUI可以反编译jar包,用法就是打开jar包直接浏览. JD-Eclipse JD-Eclipse是个Eclipse插件,安装方法是打开Eclipse,菜单 Help – & ...

  2. JAR包及jar命令用法

    常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了:而另一种是使用 JET 来进行 ...

  3. CentOS中使用Dockerfile部署带websocket的SpringBoot的jar包

    场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...

  4. java jar包详解_Jar打包用法详解

    这篇文章主要介绍了Jar打包用法,详解分析了jar打包命令的各种常见用法及参数含义,非常具有实用价值,需要的朋友可以参考下 本文较为详细的分析了Jar打包的用法.分享给大家供大家参考.具体分析如下: ...

  5. java websocket下载_java-websocket.jar包下载

    java-websocket.jar包是一款在进行java开发的过程中十分重要的一款jar文件,如果在进行java开发的过程中发现架包库中缺少这款websocket.jar包,请马上下载修复架包即可. ...

  6. android websocket client 如何调用autobahn.jar

    Android调用  autobahn.jar: 1.下载源码:使用library: https://github.com/tavendo/AutobahnAndroid: 2.编译,得到autoha ...

  7. fernflower反编译jar包用法

    1.用jd-gui反编译,save source后会生成非源码的注释代码. 2.Android studio跳转源码可以看到,class文件是用fernflower反编译的源码,然后我们去GitHub ...

  8. 一文读懂jar包的小秘密

    简介 java程序员每天不是在创建jar包就是在创建jar包的路上,并且各种依赖引用都是以jar包的形式展示的.但是随着现代IDE的出现,我想很多程序员已经基本上很少直接和jar包打交道了. 换句话说 ...

  9. linux 后台运行jar包命令,Linux 运行jar包命令(Cent OS 7后台运行jar包)

    Linux 运行jar包命令如下: 方式一 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu. ...

最新文章

  1. 【怎样写代码】向现有类型“添加”方法 -- 扩展方法(二):扩展方法的实现与调用
  2. 是什么让 Spring5 放弃了使用 Guava Cache?
  3. C语言自学《四》---- 循 环
  4. python Anaconda2安装OpenCV2
  5. recovery模式下支持ADB连接和串口操作
  6. python加载机制_Python 模块的加载顺序
  7. 头的各个部位示意图_图解圆锥破碎机润滑油路,7个主要润滑部位特点分析
  8. 挖掘经典:几乎被人遗忘的HTML七种用法
  9. 苹果手机上网很慢_手机信号满格,但上网速度却很慢?来听听通信专家怎么说的...
  10. echarts全国城市经纬坐标json文件
  11. (C语言) 用牛顿迭代法求方程2x^3 - 4x^2 + 3x - 6 = 0在1.5附近的根
  12. 银行的USB KEY里面包含的是什么
  13. excel显著性检验_使用Excel2016比较两组数据显著性差异
  14. python 爬虫下载网易歌单歌曲
  15. 胜利大逃亡 --- bfs记录
  16. 使用vue+element开发一个谷歌插件
  17. Android类似IOS的果冻效果
  18. R语言---安装依赖包
  19. css3制作八棱锥_CSS 绘制各种形状
  20. python接口自动化-发邮件带附件

热门文章

  1. CSU - 1804
  2. 热门项目披露:湖南民航置业有限公司70%股权转让
  3. 【微信小程序】微信小程序中WeUI的使用
  4. 复合词 (Compound Words)(集合+字符函数)
  5. 行列式,线性变换,变换,雅克比行列式,二次型
  6. 【计算机视觉】计算机视觉入门大全:基础概念、运行原理、应用案例详解
  7. 围观大神是如何用 Python 处理文件的?
  8. 让小孩学Python语言编程有意义吗?
  9. 4星|《基因转》:从孟德尔、达尔文到人类胚胎转基因
  10. Echarts-极坐标(参数详解)