我写了一套可以自己部署的聊天,叫 CaoIM

avatar
风格的风格IP属地:上海
02026-10-31:01:50:27字数 1136阅读 2

我想要一套聊天,消息放在自己的数据库里,手机能聊,电脑也能聊,浏览器打开还是它。现成的产品很多,源码不在自己手里。后来我就自己写了,名字叫 CaoIM。

打开之后,和常见的聊天软件差不多。左边是会话,点进去是私聊或群聊。可以发文字、表情、图片、语音、文件和短视频,也能引用、转发、撤回、收藏。会话可以置顶、免打扰,正在看的那个聊天不会继续堆未读。

01-conversation-list.png

通讯录里可以搜人加好友,也能扫码。好友有备注和黑名单。群可以改名字、发公告、设管理员、禁言,入群可以要求验证。桌面端看群成员时,资料从右边滑出来,不用先退出聊天。

02-chat.png

一对一可以打语音和视频。呼叫时有铃声,接起来之后能看到自己的画面,也能切换摄像头。群通话还没有。同一局域网里一般能打通;放到公网时,如果只有呼叫、没有声音,需要自己再准备 TURN。

对方当时不在线,消息会先存着,下次打开再拉下来。图片和文件不是塞进聊天连接里传的,而是先上传,消息里只留一个地址,所以一段视频不会把其他人的文字堵住。

01-group-chat.png

客户端是一套 Flutter,Android、iOS、Windows、macOS 和网页共用。桌面是三栏,手机是底部三个页签:消息、通讯录、我的。也有深色模式。

服务端是 Java。消息、好友和群在一个服务里,注册登录和文件上传在另一个服务里,运营后台单独一个。后台可以看用户和群、停用账号、查消息、维护敏感词。支付、小程序、视频号没有做。

自己学习、自己用,可以直接拉代码。放进公司产品时,需要先和作者说一声,这一步不收费,条款在仓库的 LICENSE 里。

代码在 GitHub 和 Gitee,组织名是 cao-im。从 im-server 这个仓库进去,就能找到登录服务、后台、Flutter SDK 和客户端。

总资产 0
暂无其他文章

热门文章

暂无热门文章