野火IM是专业级即时通讯和实时音视频整体解决方案,由北京野火无限网络科技有限公司维护和支持。
主要特性有:私有部署安全可靠,性能强大,功能齐全,全平台支持,开源率高,部署运维简单,二次开发友好,方便与第三方系统对接或者嵌入现有系统中。详细情况请参考在线文档。
主要包括一下项目:
GitHub仓库地址(主站) | 码云仓库地址(镜像) | 说明 | 备注 |
---|---|---|---|
im-server | server | IM Server | |
android-chat | android-chat | 野火IM Android SDK源码和App源码 | 可以很方便地进行二次开发,或集成到现有应用当中 |
ios-chat | ios-chat | 野火IM iOS SDK源码和App源码 | 可以很方便地进行二次开发,或集成到现有应用当中 |
pc-chat | pc-chat | 基于Electron开发的PC 端 | |
web-chat | web-chat | 野火IM Web 端, 体验地址 | |
wx-chat | wx-chat | 小程序平台的Demo(支持微信、百度、阿里、字节、QQ 等小程序平台) | |
app server | app server | 应用服务端 | |
robot_server | robot_server | 机器人服务端 | |
push_server | push_server | 推送服务器 | |
docs | docs | 野火IM相关文档,包含设计、概念、开发、使用说明,在线查看 |
本工程为野火IM Android App,开发过程中,充分考虑了二次开发和集成需求,可作为SDK集成到其他应用中,或者直接进行二次开发。
开发一套IM系统真的很艰辛,请路过的朋友们给点个star,支持我们坚持下去🙏🙏🙏🙏🙏
- JDK: 17
- 我们采用最新稳定版Android Studio及对应的gradle进行开发,对于旧版本的IDE,我们没有测试,编译之类问题,需自行解决。
- 关闭混淆时,命令行下,通过
./gradlew clean aDebug
或 Android Studio 里面,通过Build App Bundle(s)/APK(s) -> Build APK(s)
生成的 debug 版本 apk,不支持音视频通话,具体原因请参考useFullClasspathForDexingTransform - 开启混淆,debug 版 apk 一切正常,将
chat/build.gradle#buildTypes#debug#minifyEnabled
置为 true,即为 debug 版也开启混淆 - 命令行下,通过
./gradlew clean aR
或 Android Studio 里面,通过Generate Signed App Bundle/APK...
可生成 release 版 apk,release 版 apk,一切正常
野火IM采用bugly作为日志手机工具,大家二次开发时,务必将MyApp.java
中的 bugly id
替换为你们自己的,否则错误日志都跑我们这儿来了,你们收集不到错误日志,我们也会受到干扰。
- 确保所依赖的
lifecycle
版本在2.2.0或以上。 - 参考
chat/proguard-rules.pro
进行配置。
为了方便开发者部署、测试,默认允许HTTP
进行网络请求,为了提高安全性,上线之前,请进行以下操作:
- 为
app-server
配置HTTPS
支持,并将APP_SERVER_ADDRESS
配置为HTTPS
地址 - 如果支持开放平台的话,为开发平台配置
HTTPS
支持,并将WORKSPACE_URL
配置为HTTPS
地址 - 如果支持组织结构的话,为组织结构服务配置
HTTPS
支持,并将ORG_SERVER_ADDRESS
配置为HTTPS
地址 - 将
AndroidManifest.xml
里面的usesCleartextTraffic
置为false
android.permission.PROCESS_OUTGOING_CALLS
,音视频通话时,允许普通电话打断音视频通话android.permission.SYSTEM_ALERT_WINDOW
,允许音视频通话窗口最小化,并悬浮在其他窗口之上android.permission.BLUETOOTH
、android.permission.BLUETOOTH_ADMIN
,音视频通话时,允许使用蓝牙耳机
请使用api-19分支,如果编译失败等,可能是4.x版本的协议栈版本没有及时更新所导致,请微信联系 wfchat
进行更新。
商务合作请优先采用邮箱和我们联系。技术问题请到野火IM论坛发帖交流。
- heavyrain.lee 邮箱: heavyrain.lee@wildfirechat.cn 微信:wildfirechat
- imndx 邮箱: imndx@wildfirechat.cn 微信:wfchat
- 如果大家发现bug,请在GitHub提issue
- 其他问题,请到野火IM论坛进行交流学习
- 微信公众号
强烈建议关注我们的公众号。我们有新版本发布或者有重大更新会通过公众号通知大家,另外我们也会不定期的发布一些关于野火IM的技术介绍。
我们提供了体验demo,请使用微信扫码下载安装体验
- client部分,自行下载代码,并将client module引入你们自己的项目。
- uikit部分,自行下载代码,并将uikit module引入你们自己的项目。
- push部分,自行下载代码,将push module引入你们自己的项目。
当应用在后台后,不同手机厂家有着不同的后台策略,可能很快或者最终会被冻结和杀掉,此时收到消息需要厂商的推送通知服务。请部署推送服务,推送服务代码可以在Github和码云下载。具体使用方式,请参考推送服务项目上的说明。
欢迎提交pull request,一起打造一个更好的开源IM。
- LQRWeChat 本项目中图片选择器、表情基于此开发
- butterKnife
- OKHttp等一些其他优秀的开源项目
- 本工程使用的Icon全部来源于icons8,对他们表示感谢。
- Gif动态图来源于网络,对网友的制作表示感谢。
如果有什么地方侵犯了您的权益,请联系我们删除🙏🙏🙏
- Under the Creative Commons Attribution-NoDerivs 3.0 Unported license. See the LICENSE file for details.