All Projects → danxinzhicheng → CimIM

danxinzhicheng / CimIM

Licence: other
IM即时通信Android客户端

Programming Languages

java
68154 projects - #9 most used programming language
c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

Labels

Projects that are alternatives of or similar to CimIM

customer-service
客服IM服务端,基于t-io
Stars: ✭ 30 (+114.29%)
Mutual labels:  im
rainbow
分布式即时通讯
Stars: ✭ 13 (-7.14%)
Mutual labels:  im
CoffeeChat
opensource im with server(go) and client(flutter+swift)
Stars: ✭ 111 (+692.86%)
Mutual labels:  im
Rmessage
Reactive Programming Multi-protocol push service
Stars: ✭ 23 (+64.29%)
Mutual labels:  im
qcloud-im-server-sdk-java
☁ Tencent Cloud IM Server SDK in Java | 腾讯云 IM 服务端 SDK Java 版
Stars: ✭ 38 (+171.43%)
Mutual labels:  im
ARChatRoom
应用场景包括:语聊房,语音开黑,狼人杀,陌生人交友,组队PK。支持Android 端、iOS 端。
Stars: ✭ 39 (+178.57%)
Mutual labels:  im
go-im
基于Golang编写的高性能im服务器 🚀
Stars: ✭ 220 (+1471.43%)
Mutual labels:  im
gmqtt
Golang MQTT Broker.
Stars: ✭ 75 (+435.71%)
Mutual labels:  im
dolores-ios
dolores iOS 客户端
Stars: ✭ 22 (+57.14%)
Mutual labels:  im
Open-IM-SDK-Android
OpenIM:由IM技术专家打造的基于 Go 实现的即时通讯(IM)项目,Android版本IM SDK 可以轻松替代第三方IM云服务,打造具备聊天、社交功能的app。
Stars: ✭ 144 (+928.57%)
Mutual labels:  im
TeamTalk
TeamTalk is a solution for enterprise IM
Stars: ✭ 61 (+335.71%)
Mutual labels:  im
teamgram-server
Unofficial open source mtproto server written in golang with compatible telegram client.
Stars: ✭ 910 (+6400%)
Mutual labels:  im
lemon-imui
基于 VUE 2.0 的 IM 聊天组件
Stars: ✭ 146 (+942.86%)
Mutual labels:  im
xyTalk-pc
企业IM即时通讯定制平台,百万级高并发、高性能、可扩展、安全、高交互体验的企业通信和协作im平台。包含通讯服务、客户端(PC、Android、iOS)、Web门户(用于集成企业应用)、WebAPI。
Stars: ✭ 48 (+242.86%)
Mutual labels:  im
Android
Connect IM Android Project
Stars: ✭ 21 (+50%)
Mutual labels:  im
fastim
🚀基于Netty高可用分布式即时通讯系统,支持长连接网关管理、单聊、群聊、离线消息、消息推送消息、消息已读未读、消息未读数、红包、消息漫游等功能,支持集群部署的分布式架构。
Stars: ✭ 111 (+692.86%)
Mutual labels:  im
docs
Enterprise Open Source IM Solution
Stars: ✭ 18 (+28.57%)
Mutual labels:  im
fire-im
分布式IM服务,参考https://github.com/crossoverJie/cim 实现
Stars: ✭ 17 (+21.43%)
Mutual labels:  im
onchat-web
A simple, beautiful, mobile-first instant messaging progressive web application.
Stars: ✭ 138 (+885.71%)
Mutual labels:  im
i2pchat
🌀 i2pchat. Anonymous private secure opensource chat using end-to-end encrypted transport.
Stars: ✭ 25 (+78.57%)
Mutual labels:  im

CimIM Base TeamTalk

项目截图

截图1:

image

截图2:

image

截图3:

image

截图4:

image

截图5:

image

截图6:

image

截图7:

image

截图8:

image

截图9:

image

修改及增加功能点涉及:

1. 修改UI界面

基于原有蘑菇街TeamTalk项目,界面修改为蓝色扁平基调,头像为圆形头像

2. 完全重构底层业务通信方式

聊天底层的通信,由原有TCP(基于netty框架)+protobuf,改为UDP(UDT库)+protobuf.

  • UDT库是基于UDP协议的数据传输的C++库,支持海量数据传输,保证了发送报文的时序性。
  • 本项目采用Android推荐方式 Cmake,编译C++源码成udt.so,通过JNi,使java代码方便调用UDT的接口。
  • 发送报文使用protobuf。其和json,xml一样,进行网络传输的一种数据序列化标准,谷歌出品,值得信赖,灵活高效,可以跨平台。感兴趣的盆友了解一下。
  • 考虑到udp接收报文太大的时候(比如语音,文件)会自动分包,将收到的包保存到队列中,再重新组成完整的序列包。
  • cpp源码路径:app\src\main\cpp\libudt,具体编译配置参见目录下的CmakeList
  • java代码路径:app\src\main\java\com\cooyet\im\imservice\manager\IMUdtManager.java

3. 语音对讲

  • 语音对讲类路径:app\src\main\java\com\cooyet\im\imservice\manager\talk
  • 语音对讲界面见截图9
  • 功能说明:
  • - UI交互参照微信,用户A请求对讲,用户B接收对讲;
  • - 用户A讲话时,用户B不能讲话;
  • - 整个请求-接收-对讲-挂断流程通过UDT通信;
  • - 语音采集暂时用PCM格式数据,一种未做编解码的原始语音数据,便于以后对声音的处理;
  • - 聊天界面使用WindowManager显示,可以在应用任意界面接收语音请求;
  • - 接收语音的字节采用双缓冲机制,一定程度避免接收字节的不连续,网络延迟造成对语音质量造成的影响。

4. 基于高德地图,加入位置标记的发送(态势)

  • 态势具体类路径:app\src\main\java\com\cooyet\im\ui\fragment\StateFragment.java

  • 态势界面见截图5.

  • 功能说明:

  • 手动触摸地图,可以标记车,人。,在画笔的状态下,可以画出红色轨迹。

  • 点击发送,屏幕上位置坐标转换为经纬度坐标,发送给好友。(暂未实现)

  • 缓存屏幕标记到本地,下次进入应用可以显示上一次的标记

5. 基于高德地图,加入聊天中发送位置功能

  • 发送位置类路径:app\src\main\java\com\cooyet\im\ui\activity\LocationPickerActivity.java

  • 发送位置界面见截图8.

  • 功能说明

  • UI交互参照微信,使用高德地图热点搜索功能。

  • 发送暂时以图片方式发送(把当前地图截图,对此图片添加附带经纬度信息,使接收方判断是否是发送位置信息还是正常发送的图片)

注:项目基于TeamTalk的二次开发,需要搭建服务器才能登陆。若你也涉及到了以上的功能点,若有疑问,欢迎添加微信(danxinzhicheng)交流。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].