资讯专栏INFORMATION COLUMN

基于Socket.IO实现Android聊天功能

voidking / 1587人阅读

摘要:免费全网独家这是一份非常值得珍藏的知识体系一简述是一个完全由实现基于支持的协议用于实时通信跨平台的开源框架,它包括了客户端的和服务器端的。基于实现聊天功能最后,感谢你的到来,恭喜你,坚持到了最后,该文和源码若有不当之处,请予以斧正。

【免费】全网独家:这是一份非常值得珍藏的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://socket-io-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聊天功能

最后,感谢你的到来,恭喜你,坚持到了最后,该文和源码若有不当之处,请予以斧正。

【免费】全网独家:这是一份非常值得珍藏的Android知识体系!!!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68071.html

相关文章

  • 如何打造在线直播间(技术贴)

    摘要:背景当下视频直播如此红火,打造一个在线直播间涉及到哪些技术呢视频直播由主播的直播端以及观众的观看端组成。保持心跳断开重连快速搭建在线直播间按前文所述,搭建直播间有非常多的细节需要考虑,包括采集推流分发播放体验优化聊天室性能调优等。 背景 当下视频直播如此红火,打造一个在线直播间涉及到哪些技术呢? 视频直播由主播的直播端以及观众的观看端组成。一个简单的观看端最起码应包含播放器以及聊天室。...

    sugarmo 评论0 收藏0
  • 利用express+socket.io实现一个简易版聊天

    摘要:用伪代码来模拟下长轮询的过程前端利用下面函数进行请求后端代码做如下更改利用随机数的大小来模拟是否有新数据有新数据来了长轮询的确减少了请求的次数,但是它也有着很大的问题,那就是耗费服务器的资源。 写在前面 最近由于利用node重构某个项目,项目中有一个实时聊天的功能,于是就研究了一下聊天室,在线demo|源码,欢迎大家反馈。这个聊天室的主要利用到了socket.io和express。这个...

    Chaz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<