Android中脱离WebView使用WebSocket实现群聊和推送功能
WebSocket是Web2.0时代的新产物,用于弥补HTTP协议的某些不足,不过他们之间真实的关系是兄弟关系,都是对socket的进一步封装,其目前最直观的表现就是服务器推送和聊天功能。更多知识参考:如何理解 TCP/IP, SPDY, WebSocket 三者之间的关系?
今天的重点是讲如何在Android中脱离WebView使用WebSocket,而不是在Web浏览器使用,如果是在Web浏览器中使用,网上已经太多教程、框架和demo,没必要讲。
到目前为止我个人认为安卓端比较好用的WebSocketClient有:autobahn、AndroidAsync、Java-WebSocket。好不好用其实需要看实际需求而定,此处我选择Java-WebSocket。
一、Android客户端的创建(使用Java-WebSocket库):
1、其实只需要掌握一个类,WebSocketClient即可
2、指定IP/域名和端口连接服务器,当服务器端有通知时会回调onMessage方法
3、然后调用connect方法进行连接
4、连接后就可以发送消息了,发送消息也很简单,除了支持String的发送还支持byte发送,好了,客户端就这么愉快的写完了(详细代码见后面打包的demo)。
二、服务端的创建:
1-1、Java Application服务端创建(使用Java-WebSocket库),其实也很简单,就继承一个类WebSocketServer:
1-2、然后在main方法中开启服务端,现在就可以用Android客户端来连接进行聊天、接收推送了,实在是太简单了。
2-1、Java Web(tomcat)服务端创建,这里不使用Java-WebSocket库,直接使用Java API javax.websocket包中的WebSocket相关类(注意Java API只实现了标准的RFC 6455(JSR256),如果你非要选择其它早期草案则需要用Java-WebSocket来实现,在Java-WebSocket中连接协议“Draft_17”就是标准的RFC 6455(JSR256),另外要使用Java API javax.websocket包中的WebSocket相关类要求JDK7及以上,Tomcat 7.0.49及以上):
2-2、然后启动tomcat就可以愉快的用Android客户端来连接进行聊天、接收推送了。
三、相关截图:
1-1、Java后台:
1-2、Java后台对应的Android客户端
2-1、Java Web后台:
2-2、Java Web后台对应的Android客户端
2-3、html前端(浏览器):
demo代码下载:websocket聊天测试demo.zip
原创随笔,转载注明出处。
Android中脱离WebView使用WebSocket实现群聊和推送功能的更多相关文章
- Android 中的 WebView实现 Html5 标签网页加载
自Android 4.4起,Android中的WebView开始基于Chromium(谷歌浏览器)支持浏览器的一系列功能,webkit解析网页各个节点,这个改变,使得WebView的性能大幅度提升,并 ...
- Android中使用WebView, WebChromeClient和WebViewClient加载网页 (能够执行js)
Android中使用WebView, WebChromeClient和WebViewClient加载网页 在android应用中,有时要加载一个网页,如果能配上一个进度条就更好了,而android ...
- Android中通过WebView控件实现与JavaScript方法相互调用的地图应用
在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用andro ...
- 让Android中的webview支持页面中的文件上传
android webview在默认情况下是不支持网页中的文件上传功能的: 如果在网页中有<input type="file" />,在android webview中 ...
- 在android中实现webview与javascript之间的交互(转)
参见“在android中实现webview与javascript之间的交互”
- android中使用WebView请求本地网页
使用WebView的方式请参考我的上一篇文章:android中使用WebView请求网页 这里说一下请求本地网页的方法: 本地网页应该把网页保存在src/main/assets目录下: webView ...
- 一例完整的websocket实现群聊demo
前言 业余我都会花一些时间在tcp.http和websocket等领域的学习,现在觉得有点收获,所以把一个基于websocket的群聊功能的例子提供给大家玩玩.当然这是一个很完整的例子,包括webso ...
- 拾人牙慧篇之——基于HTML5中websocket来实现消息推送功能
一.写在前面 要求做一个,后台发布信息,前台能即时得到通知的消息推送功能.网上搜了也有很多方式,ajax的定时询问,Comet方式,Server-Sent方式,以及websocket.表示除了定时询问 ...
- Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送
Android高效率编码-第三方SDK详解系列(三)--JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送 很久没有更新第三方SDK这个系列了,所以更新一下这几天工作中使用到的推送, ...
随机推荐
- python转exe的小工具
其实只是在cxfreeze的基础上加了个壳,做成窗口软件了 使用了pyqt做的界面,软件发布在了开源中国上,可以直接去下面的地址查看 http://git.oschina.net/robocky/py ...
- 【原创】使用Fiddler抓取手机网络包
一: 下载安装Fiddler 二: 打开 tools--Telerik Fiddler Options, 进行如下设置
- PHP常用函数大全
usleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_until() ...
- WeedFS依赖库 0.6.1
WeedFS依赖库 版本 0.6.1 =======================================================================glog====== ...
- win7配置SMTP服务
有人说WIN7系统没有SMTP服务 怎么可能呢??? 具体安装步骤如下: 控制面板\程序>打开和关闭Windows功能 Internet信息服务 将 万维网服务>应用程序开发功能> ...
- pgm revert转换 成jpg 人脸识别图片
最近在搞人脸识别,下载数据集走得比较心累.很多数据集太大了.没有啥标签.先搞一个小的玩玩.还找到的是pgm灰度图.索性写了个小脚本,用来转换.同时写脚本打标签. 数据集地址:http://downlo ...
- javascript检查移动设备是否支持重力方向感应
javascript如何检查移动设备,如手机平台是否支持重力或者方向感应. 可以使用html5提供的重力和方向感应接口来判断. html5 中针对高端手机提供了重力感应和重力加速的接口,开发可以利用这 ...
- 初识Android NDK
本文介绍Windows环境下搭建Android NDK开发环境,并创建一个简单的使用Native代码的Android Application. 一.环境搭建 二.JNI函数绑定 三.例子 一.环境搭建 ...
- 对 clear:both 这个样式的一些理解
看下我今天一直研究的两个例子吧.希望对自己跟大家有帮助: 例子一: <!DOCTYPE html> <html> <head lang="en"> ...
- JavaScript DOM编程艺术读书笔记(四)
第十章 实现动画效果 var repeat = "moveElement('"+elementID+"',"+final_x+","+fin ...