基于Socket.IO实现Android聊天功能代码示例
一、简述
Socket.IO是一个完全由JavaScript实现、基于Node.js、支持WebSocket的协议用于实时通信、跨平台的开源框架,它包括了客户端的JavaScript和服务器端的Node.js。
该种官方介绍看起来有点懵逼,简而言之就是:客户端可通过Socket.IO与服务器建立实时通信管道
二、应用
该下就是介绍Socket.IO通信管道的铺设、通信以及销毁工作。
2.1 引入Socket.io包
compile 'io.socket:socket.io-client:0.8.3'
2.2 实例化Socket对象
服务器地址(该地址为Socket.IO官方测试地址,实际项目中请更换):
String CHAT_SERVER_URL = https://socketio-chat.now.sh/
根据服务器地址,实例化Socket对象:
Socket mSocket = IO.socket(CHAT_SERVER_URL, options);
其中options是可供用户选择的一些配置参数,部分配置如下:
public static class Options extends io.socket.engineio.client.Socket.Options {
// 是否自动重连
public boolean reconnection = true;
// 重连尝试次数
public int reconnectionAttempts;
// 重连间隔
public long reconnectionDelay;
// 最大连接等待时间
public long reconnectionDelayMax;
// 连接超时时间 (ms),设置为-1表示不超时
public long timeout = 20000;
}
2.3 注册监听
在这里我们就需要注册一些监听事件,用来监听Socket通信过程中产生的一些行为,比如以下是注册Socket连接成功后的监听回调:
Emitter.Listener connectListener;
connectListener = new Emitter.Listener() {
@Override
public void call(Object... args) {
}
};
socket.on(Socket.EVENT_CONNECT, connectListener);
2.4 通过Socket对象建立连接
至此,我们的管道铺设工作就已经完成了,接下来我们只需要打开管道的开关,那么客户端与服务器之间就可以互通互信:
mSocket.connect();
那我们要如何知道两者之间是否已经连接成功了呢?没错,在2.3 我们注册过监听,一旦Socket连接成功,就会触发该回调,此时我们就可以根据项目的实际需求来做相应的处理了。
2.5 简单使用
此时,如果我们要向服务器发送消息,要怎么实现呢?Socket.IO提供了如下操作:
mSocket.emit("new message", content);
还可以这样:
mSocket.emit("new message", content, new Ack() {
@Override
public void call(Object... args) {
}
});
2.6 管道的销毁
当我们不想再使用管道的时候,就需要把管道给销毁,很简单,我们只需要断开连接以及注销监听即可:
mSocket.disconnect();
mSocket.off(Socket.EVENT_CONNECT, connectListener);
好啦,Socket.IO整个通信过程就完成啦,于我们而言,是不是简单易用。
三、完整源码奉上
不知该部分是不是众望所归(哈哈~),该份源码是基于Socket.IO官方的服务器地址结合实际项目融合而成,扩展性极强,特分享出来,供各位参考。
基于Socket.IO实现Android聊天功能
最后,感谢你的到来,恭喜你,坚持到了最后,该文和源码若有不当之处,请予以斧正。
以上就是本文的全部内容,希望对大家的学习有所帮助。
- 让WordPress 在RSS 中Feed 截断文字输出
- [C#1] 11-接口
- jquery 标签中的属性操作
- 使用MongoDB存储访问者信息
- 解决WordPress 打开Feed页面“This page contains the following errors…”的问题
- jquery表单属性筛选元素
- [C#1] 10-事件
- Windows 7的VPC虚拟机自动不与主机时间同步的解决办法
- [C#1] 9-委托
- jquery基本选择器
- rainyday.js——超逼真全屏雨滴模拟插件
- [C#1] 8-数组
- ASP.NET MVC2 数据模型验证类库:MVC Foolproof Validation
- [C#1] 7-枚举
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释