Gitee 官方博客
  • 产品动态
  • 企业案例
  • 项目推荐
  • 关于开源
  • 发现更多
  • 回到 Gitee
  • 产品动态
  • 企业案例
  • 项目推荐
  • 关于开源
  • 发现更多
  • 回到 Gitee

来自国内开发者的实战项目,开源让通讯从未如此简单 | 码云周刊第 3 期

Gitee
7 年前发布在 项目推荐

科技的小小进步,却从此大大地改变了世界!今天小一为大家带来了国内开发者的即时通讯类实战项目,开源让通讯从未如此简单。

 

1、项目名称:基于 Xmpp 的即时通讯

来自国内开发者的实战项目,开源让通讯从未如此简单 | 码云周刊第 3 期-Gitee 官方博客

来自国内开发者的实战项目,开源让通讯从未如此简单 | 码云周刊第 3 期-Gitee 官方博客

项目简介:本项目为了简单方便,便把之前百度推聊换了一个芯:将基于百度云推送改成基于 asmack 的即时通讯,当然,界面也会有一定的改动,会增加一些新东西,也会去掉一些多余的累赘。另外改动比较大的数据库存取方式,这次改成 contentprovider,关于这个 Android 四大基本组件之一,我们几乎都是用的比较多,实现真是少之又少,权当是练练手吧!

  1. 老规矩,先上 Splash,在这个过度界面,我们可以初始化一些必要的数据。
  2. 这里是列表文本 登陆提示界面,仿 zaker 界面的开门效果,可以往上滑动收起来。没有找到合适的帮助图片,就用红色的文字显示,没有做注册功能,因为 google talk 注册没有那么简单,只能实现自己搭建的 openfire 服务器注册账号,就直接去掉算了。
  3. 我这里使用的是 Google 账号登陆测试的。
  4. 主界面,和之前的百度推聊是一样的啦,直接移植过来的。只是将好友列表和最近会话换了一下位置。点击昵称可以切换在线状态。
  5. 空的最近会话列表。
  6. 好友列表是可以区分好友在线状态的,同时长按好友会弹出操作提示框,一个开源的控件,稍微修改了一下,换了一层皮。
  7. 好友列表实现了仿 QQ 的效果,IphoneTreeView 和下拉刷新的功能,稍微有一点点小问题,不过个人能力问题,只能优化到这个样子,请谅解。
  8. 设置界面,点击退出按钮,可以实现仿 Iphone 的退出对话框。
  9. 最近会话也是可以滑动删除的啦,直接从之前的项目移植过来的。
  10. 聊天界面,也是基本上从之前项目移植过来的。
  11. 本应用内部每个 Activity 都是可以手势滑动返回的,可以解放你的返回按键。

项目地址:way/XMPP

 

2、项目名称:基于 UDP 轻量级移动端即时通讯框架

来自国内开发者的实战项目,开源让通讯从未如此简单 | 码云周刊第 3 期-Gitee 官方博客

项目简介:一个专为移动端开发的原创即时通讯框架,超轻量级、高度提炼,完全基于 UDP 协议,支持 iOS、Android、标准 Java 平台;可应用于跨设备、跨网络的聊天 APP、企业 OA、消息推送等各种场景。

设计目标:让开发者专注于应用逻辑的开发,底层复杂的即时通讯算法交由 SDK 开发人员,从而解偶即时通讯应用开发的复杂性。

技术特征:

  • 超轻量级:高度提炼,lib 包50KB以内;
  • UDP实现:更好的适应现今的无线网络环境;
  • 高效费比:UDP的无连接特性,同等条件下可实现更高的网络负载和吞吐能力;
  • 消息走向:支持即时通讯技术中消息的所有可能走向,共3种(即C2C、C2S、S2C);
  • QoS机制:完善的消息送达保证机制,不漏过每一条消息;
  • 健壮可靠:实践表明,非常适于在高延迟、跨洲际、不同网络制式环境中稳定、可靠地运行;
  • 断网恢复:拥有网络状况自动检测、断网自动治愈的能力;
  • 原创算法:核心算法和实现均为原创,保证了持续改进和提升的空间;
  • 多种模式:预设多种实时灵敏度模式,可根据不同场景控制即时性、流量和客户端电量消耗;
  • 数据压缩:自有协议实现,未来可自主定制数据压缩,灵活控制客户端的流量、服务端网络吞吐;
  • 高度封装:高度封装的API接口,保证了调用的简易性,也使得可应用于更多的应用场景。

性能测试:压力测试表明,MobileIMSDK用于推送场景时,理论单机负载可接近千万级。用于聊天应用时,单机负载也可达数十万。

项目地址:ackjiang/MobileIMSDK

 

3、项目名称:基于 Java aio 的即时通讯框架 talent-aio

来自国内开发者的实战项目,开源让通讯从未如此简单 | 码云周刊第 3 期-Gitee 官方博客

项目背景:2011年本人有幸参与了中兴某刀片的网管系统,大领导亲点让我来改造原来的实时通讯模块,因为老系统每管理一个节点就需要两个线程,实测出来的数据是管理100个节点时,就会达到1000多个线程,稳定性和性能极差。在这样的背景下,开始学习 nio,改造后的系统线程维持在100个左右,可管理上千个节点,消息收发速度极快,最近和中兴同事了解过,核心代码仍然在运行,足见稳定性,这就是后来 talent-nio 的雏形。

后来作为热波间(一个直播平台)的平台端架构师,持续优化和封装了 talent-nio,使之可以支持4万 TCP 长连接,每秒可以收发10万条消息。很多朋友要求我开源 talent-nio,但是 talent-nio 在API设计方面不是太好,开源出来无疑个砸牌子的事情。一翻纠结后,写了 talent-aio,线程池部分来源于并优化于 talent-nio,其它部分一律重新设计,尤其是锁的优化和 API 的重新设计,为了折衷花费了大量精力。

项目简介:本项目已经提供了一个 helloworld 版的例子,虽然有3个maven工程,6个 java 文件,但是有效代码只有区区100多行,结构清晰极易上手,位于:example\helloworld目录。项目在单机IM场景,可处理73万条消息/秒,收发数据量70M/秒,可同时稳定维护10万级以上TCP长连接(测试环境:i7 4790、8G内存、windows7)。

Java aio 的驾驭需要有扎实的多线程基础,并且需要掌握很多多线程技巧,而 talent-aio 是将多线程技巧运用到极致的框架,所以通过学习本项目,你将会从本项目中学到很多关于多线程的技巧。

项目地址:tywo45/talent-aio

 

4、项目名称:企业内部沟通协作平台 Entboost

来自国内开发者的实战项目,开源让通讯从未如此简单 | 码云周刊第 3 期-Gitee 官方博客

个人云盘:

来自国内开发者的实战项目,开源让通讯从未如此简单 | 码云周刊第 3 期-Gitee 官方博客

在线浏览:

来自国内开发者的实战项目,开源让通讯从未如此简单 | 码云周刊第 3 期-Gitee 官方博客

项目简介:本项目适用于企业内部沟通,无论是一对一聊天、群组聊天、部门聊天,基本的文本、表情、图片、 屏幕截图、语音消息、漫游消息,离线消息、离线文件等,必不可少。除此之外,还支持企业内部环境智能 P2P 点对点通讯,最高超过10MB每秒传输速度;还会有多人视频聊天,远程协助等沟通功能,满足更多企业内部同事间沟通需求,提高工作效率。

项目地址:akee/entboost

 

5、项目名称:仿微信客户端

来自国内开发者的实战项目,开源让通讯从未如此简单 | 码云周刊第 3 期-Gitee 官方博客

项目简介:Openfire+Smack+Spark 实现 Android 端的即时通讯 APP(仿微信)。 功能已基本实现完毕,本项目基于 Smack 4.1.3,这个版本的 smack 有很大的改动,网上的 Demo 很少,基本都是查看 API 实现的。

当前已完成功能:

  • 登录页面+登录功能+微信主页面;
  • 通讯录页面+获取通讯录列表;
  • 内存泄露检测;
  • 好友列表点击查看好友信息详情界面;
  • 聊天功能(缺乏美工,UI不完善);
  • 聊天记录的本地存储和读取;
  • 上传头像、更改昵称、修改性别;
  • 获取离线消息;
  • 添加了发送和接收emoji表情功能;
  • 添加好友功能(多次测试发现smack4.1.3有无法实现通过验证来添加好友的bug);

项目地址:yeliangliang/WeChat

 

6、项目名称:基于 Spring 的简易 web 聊天室

来自国内开发者的实战项目,开源让通讯从未如此简单 | 码云周刊第 3 期-Gitee 官方博客

项目简介:传统的HTTP协议,一般通过向服务器发送请求,拉取数据实现半双工通信,缺点是服务器难以直接向浏览器下发消息,因此,websocket协议应运而生,可用于向建立连接的浏览器主动下发任意数据(PUSH)。本项目基于Spring平台,整合websocket协议,实现一个简易web聊天室的功能。主要特性如下:

  • 包含聊天室登录、退出的功能。登录时,浏览器自动向服务器发起websocket连接,退出时自动切断。
  • 登录后,用户可查看到聊天室在线的用户列表,我们在服务器上通过一个hashmap始终记录了当前在线的用户列表;
  • 登录的用户可以点击一个在线的其他用户,并给他发送消息,消息先提交给服务器,在通过服务器转发给另一端用户;
  • 支持群发消息的功能,使用时,服务器会将收到的消息群发给当前在线的所有用户;
  • 添加好友上线提醒和下线提醒的功能,当有好友上线或下线时自动通知所有其他在线人,不要刷新页面可看到实时在线用户列表。

项目地址:Spring-websocket

 

7、项目名称:基于 PHP 的网页聊天工具

来自国内开发者的实战项目,开源让通讯从未如此简单 | 码云周刊第 3 期-Gitee 官方博客项目简介:使用PHP+Swoole实现的网页即时聊天工具,其功能如下:

  • 全异步非阻塞Server,可以同时支持数百万TCP连接在线
  • 基于websocket+flash_websocket支持所有浏览器/客户端/移动端
  • 支持单聊/群聊/组聊等功能
  • 支持永久保存聊天记录
  • 基于Server PUSH的即时内容更新,登录/登出/状态变更/消息等会内容即时更新
  • 支持发送连接/图片/语音/视频/文件(开发中)
  • 支持Web端直接管理所有在线用户和群组(开发中)

项目地址:nxs/PHPWebIM

 

Copyright@OSChina.NET

制版编辑:Zico丨

本页刊发内容未经书面许可禁止转载及使用

公众号、报刊等转载请联系授权

欢迎转发朋友圈,投稿:chenyang@oschina.cn

关注码云官方微信公众号:码云Gitee

查看更多有趣的开源项目资讯,请前往:码云开源项目广场

老司机教你如何麻溜地搭建网站 | 码云周刊第 2 期
上一篇
当测试拿起自动化测试工具,开发仿佛看见一场悲剧正在上演 | 码云周刊第 4 期
下一篇
近期文章
  • 启航 AI 新航道!Gitee 双十一与你共享智能新未来
  • 《中国DevOps现状调查报告(2023)》发布,Gitee 领跑国产平台
  • 研运一体化之下,Gitee 如何精准赋能银行实施大规模敏捷
  • 对数字「祛魅」,中大型规模企业如何进行有效的研发效能度量?
  • 从混乱到卓越,Gitee Code 如何治好 IT 部门的精神内耗
  • 科技赋能,Gitee 助力国家海关总署实现重大业务改革
  • 科大讯飞选择Gitee旗舰版,完成研发协作平台国产化替代
  • 用脑图做测试用例,高效到家了!
  • 信创驶入快车道,中国赛宝实验室选择 Gitee 搭建高效研发协作平台
  • 金融人怎么写出安全可靠的代码?知名证券企业这样做
相关文章
我们让 ChatGPT 写了一篇开源项目推荐
从 DevOps 到 XOps 的优质开源项目精选
优秀PHP开源项目集合
热门开源Web开发框架推荐
关于我们

Gitee(gitee.com)是 OSCHINA.NET 推出的代码托管·协作开发平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 1200 万的开发者选择 Gitee。

品牌内容
开源软件 GVP计划 Gitee 封面人物 CopyCat 代码克隆检测
友情链接
开源中国 Gitee Gitee 高校版 Gitee 企业版
Copyright © 2013-2025 Gitee 官方博客. Designed by nicetheme.
  • 产品动态
  • 企业案例
  • 项目推荐
  • 关于开源
  • 发现更多
  • 回到 Gitee
热门搜索
  • Gitee
  • gitee 企业版
  • 码云
  • 开源项目
  • 码云Gitee
  • GVP
  • Git
  • 开源
  • 码云企业版
  • 码云周刊
  • 码云 gitee
  • DevOps
  • gitee企业版
  • 内源
  • 内部开源
  • innersource
  • 小程序
  • 企业版
Gitee
安全、稳定、高效的云端软件开发协作平台。
Top