目前 im 做的最好的无外乎是腾讯妈妈的 qq && wechat 以及阿里爸爸的 钉钉,除此之外 im 做的比较好的也就是大企业或者大的组织,个人 && 小组织 && 创业团队 就比较头疼这件事情了。
那么小团体或者个人,如何接触 im 的这扇看似很高大上的大门了?当前网络上相关 im 的东西稀疏平常,缺少让人耳目一心的东西,im 普及的问题就存在了!!!
IM 不是一个很基础的话题吗?好像基本的 APP 都想在里面加上 im 的功能,但是都没有很简单方便的方法。。。。
最近也在研究即时通讯相关的东西,很多问题都没有解决的办法,好像说明这块的文档也是特别的少?
希望大家给我推荐一些开源的 im 相关项目,带我研究以后分享给大家~_~
最终理想中的IM是什么样?
距离写这篇文章过去了3个多月。3个月可以做很多事情,比如真的开发一套开源免费的IM系统。
从刚开始想这个问题,到如今实现的IM,过程还是挺煎熬的,特别是做这种开源的产品,以及其中遇到很多想抗拒却抗拒不了的问题,不过结果总还是好的。
所以这里来把这么一款开源免费的产品提供给大家一起享用~
1
SAM2O2O OP 希望大家可以给一些建议和想法,关于 im 的,怎么让大家不在谈 im 色变?
|
2
yukiww233 2018-07-16 11:08:09 +08:00
app 集成个 im 还不简单,云旺 融云 环信 云信都是一键接入
开源的有个蘑菇街的 teamtalk 只是很久没维护了。。 |
3
liudaqi 2018-07-16 11:14:17 +08:00
im 能用容易,好用无底啊。所以结果就是用户都只用几个“好用”的的 im 去了,零碎的 im 工具开发者也更加没动力开发了。另外还有一个原因是,纯粹的 im 工具不赚钱啊,不如搭个电商立马就可以卖货了
|
4
SAM2O2O OP 云旺 融云 环信 云信这种都是接别人的 sdk,服务端都是别人的,我在寻找一种方式可以让开发 im 的可以很方便集成开源 sdk,包括 android/ios 的 sdk,web 端,开源服务端
|
5
lshero 2018-07-16 11:16:46 +08:00 2
|
6
SAM2O2O OP “ im 能用容易,好用无底” 这句话说的很好,我和朋友准备在弄一些开源 im,全套的 im 包括前后端开源,这样是不是可以解决这个问题?
|
7
SirLostWhite 2018-07-16 11:17:52 +08:00
一般 app 都是用环信
自己做的话也比较简单吧 用 nodejs socketio 可以 用 php workerman 也可以 都是有官方 demo 的 其他语言的不太了解 我们公司在小程序上集成了 im 后端用的 socketio 做的 还挺简单的 |
8
SAM2O2O OP 之前我也使用过 openfire,但是觉得集成方式不好,im 当成其中一个模块,而不是需要自己改代码的方式,个人想法。就一中方式,im 不在需要自己开发?
|
9
SirLostWhite 2018-07-16 11:20:36 +08:00
workerman 的 demo 可以参考
https://github.com/walkor/workerman-chat |
10
daigouspy 2018-07-16 11:21:39 +08:00 via Android
直接 telegram 二次开发
|
11
SAM2O2O OP socketio 这个服务端的性能怎么样了
|
12
hushulin 2018-07-16 11:23:15 +08:00
研究开发自己的 IM 系统近三年,奈何没有好的变现方式,逐渐放弃这个。谅解我是个面向 RMB 编程的程序员\狗头
|
13
SAM2O2O OP telegram 二次开发这个想法好,我觉得可以开个 telegram 二次开发的论坛!大家一起做会更有意思
|
17
Phant0m 2018-07-16 11:28:02 +08:00
首先,做得好的 IM 并不是 lz 说的这些,好的 IM 都被 ban 了 大家都用不上,所以只能用这些辣鸡
|
18
imydou 2018-07-16 11:29:41 +08:00 1
|
20
imydou 2018-07-16 11:32:42 +08:00
中意 wire,但是开发语言冷门,上手慢。协议也不太适合用于商业用途。
|
21
grayon 2018-07-16 11:33:26 +08:00
蘑菇街开源的 TeamTalk
|
22
SAM2O2O OP @imydou 是的,最好是有全套 前后端 开源的,自己可以集成在自己项目中,比如有一整套并且方便集成 ,性能也比较靠谱的,现在我有这个项目做一套开源的出来
|
23
t6attack 2018-07-16 11:38:19 +08:00 1
楼主经历过 QQ 尾巴满天飞的时代没?早年被“ qq 广告特工”骚扰过没?
都没遇到过?那卖铁观音的总遇到过吧? 企鹅苦练十年功,技术与法律手段齐用,才解决了 QQ 尾巴、广告群发等问题。 新开发一套 IM ?要么没多少人用,成为鸡肋。 如果用户多了?更多问题会铺面而来。这是个无底洞。 如果每个论坛都配上 IM 系统,那么里面大部分都将是群发的垃圾信息。 |
24
hushulin 2018-07-16 11:39:45 +08:00
这块市场基本被抢占完了,什么百度个推,什么极光推送,感觉现在做,比较难竞争过
|
26
zakokun 2018-07-16 11:54:22 +08:00
你到底想做一个完整的前后端聊天软件还是说搞明白 IM 技术细节?
聊天软件本身就不应该是个百花齐放的事情,从古至今都不是, 再说 IM 有什么高大上了搞得以为 QQ 在搞技术垄断一样 如果你想知道技术细节,网上文章很多啊,初学者都会去学一个"通过 socket 搭建一个聊天室"什么的 |
28
koodai 2018-07-16 11:57:46 +08:00 via iPhone
环信基于 xmpp 开发的,免费额度太低,付费极贵,用不起啊!
自己基于 xmpp/jabber 做,坑多。 |
33
zakokun 2018-07-16 12:16:25 +08:00
@Tink #29 主要我觉得是因为聊天软件是个强客户端的系统 而客户端要做的好用是非常不容易的,所以开源的,私有化部署的方案很难让人接受,就像图形化操作系统一样.开源的操作系统多不多?但是图形化的操作系统谁愿意用免费开源的哦
|
34
ytmsdy 2018-07-16 12:24:56 +08:00
企业内部的 IM 都被 RTX 占领了吧。
|
35
EPr2hh6LADQWqRVH 2018-07-16 12:28:49 +08:00 via Android 1
你们都没听过 mattermost 吗
|
36
lguan 2018-07-16 12:30:32 +08:00
rocket.chat,但是,能否真的绕过 qq 和微信,就看推行力了,我觉得,很难....
|
37
koodai 2018-07-16 12:32:46 +08:00 via iPhone
|
38
Felldeadbird 2018-07-16 12:37:50 +08:00
开源的 IM 都有很多了。 再做也感觉没什么市场。
|
39
emlcj 2018-07-16 12:43:55 +08:00
之前 teambition 的简聊不错,而且也开源了……
|
40
mengdisheng 2018-07-16 12:48:41 +08:00
有也不想开源啊。。我公司自己做的为什么要开源。。。一个好的底层后端开发成本挺高的
|
41
liujinsong668 2018-07-16 12:56:11 +08:00 1
mattermost 了解一下,gitlab 无缝对接
|
42
changnet 2018-07-16 13:03:04 +08:00 via Android
搞这个的人挺多,死了的项目更多。看下内网通,喧喧之类的 im 就知道。对于小企业而言,不可能有个团队去维护一个 im,对于大公司,花点钱直接买解决方案更划算
|
43
zjsxwc 2018-07-16 13:13:04 +08:00 1
搞个网游服务器框架改下不就好了,im 本质就是网游,doge
|
44
SoulSleep 2018-07-16 13:19:59 +08:00
别的不说,上面推荐的环信经过实际的使用。。。简直就是垃圾,这种企业还是趁早倒闭的好,屌屌的;资深一堆 bug 和限制,拿项目的时候吹的好,实施阶段垃圾的不行~~
各位避而远之吧 |
45
zbinlin 2018-07-16 13:24:00 +08:00
可以看下 rocket.chat
|
46
StanMarsh 2018-07-16 13:25:57 +08:00
|
47
hyyou2010 2018-07-16 13:31:15 +08:00
你所谓的全套开源什么的,你首先得有个边界,因为 im 现在已经扩展到很大范围了。最初,就是文字聊天,后来朝多个方向发展:
1,从文字到图片,语音,视频,视频直聊。。。 2,各种群组管理,各种定制化 3,各种内容沉积管理,比如添加到日程电邮,整理为文档 |
48
Immortal 2018-07-16 13:34:23 +08:00
之前也有想详细了解下现代 im 的架构和技术难点 也没找到很系统的资料
有个 b 站的 goim 还有找到的就是 5l 那个社区 |
49
SAM2O2O OP @hyyou2010 全套开源什么 ,是指客户端可以集成开源的 sdk,服务端代码也开源可以搭建在自己的服务器,支持同够用的文字,图片,语音,其他的用扩展的方式集成在项目中。大致的项目,现在准备跟几个朋友一起弄这个东西
|
50
SAM2O2O OP @Immortal 我也是因为你说的这个原因,想构建这样一个社区 + 提供开源一整套解决办法,就是让 im 能让大家很方便的在自己的项目中使用
|
51
UnPace 2018-07-16 13:49:09 +08:00
LayUI 出了个 LayIM:
http://layim.layui.com/ |
52
SAM2O2O OP |
53
keramist 2018-07-16 13:50:23 +08:00 via Android
nextcloud 自带 可以内网外网一起聊
|
54
SAM2O2O OP @mengdisheng 这个就看个人想法了,可以选择不对外开放,也可以选择共享开源技术
|
55
nullen 2018-07-16 14:01:08 +08:00
我会劝你不要自己搞。
|
57
simapple 2018-07-16 14:24:30 +08:00
有用 php 开发吗?简单的 im 开发接入,关键词 workerman
|
58
icyalala 2018-07-16 14:25:44 +08:00
想要完全开源可控的技术方案,用户量小的话有大量可用的项目,而且无论如何都会需要定制来满足自己特殊的需求。
问题是在国内,IM 不是个单纯的技术问题。 审核怎么做,ZF 事务找谁联系,黑产广告的策略怎么跟进,这都是要持续投入和运营的。 |
59
tanranran 2018-07-16 14:34:23 +08:00
|
60
banksiae 2018-07-16 18:03:01 +08:00 1
可以研究一下 goim,基本的 im 功能都有,性能也可以。自研的话,有基础可以玩一玩,没基础基本没头绪。主要就是长短链,私有协议,压缩加密,内容存储。比较有意思的东西。
目前开源的,上过生产的,好像就是 goim 了 |
61
beimenjun 2018-07-16 18:39:14 +08:00
没价值。
小公司自然用融云环信之类的解决方案。 稍微有点实力有点追求的,自然会自己根据自己公司的情况来选型和构架。说白了,IM 真的对稍微有些规模的公司来说有什么特别难的技术屏障吗?似乎真的没有,投钱投时间就出来了。 你的项目优势基本只是为那些资源丰沛又不想怎么开发的公司服务的,那么这种公司有吗?也许有,但是我觉得支撑不了一个市场。 “没人开采的金山”,是一种很常见的幻觉。 |
62
vanxy 2018-07-16 18:43:05 +08:00 1
因为 IM 对于一般的 APP 来说,有个这功能就行,并不在乎有多好用。所以会采取集成环信等第三方 sdk,只需花费少量时间就可集成完成,并且基本能满足需求。而如果自研,要考虑的东西太多了:客户端推送、长链接、服务端存储、文件、IM 协议... 自己核心功能不做而花时间做 IM 不是本末倒置么。
而论坛的 IM 就是个伪需求,论坛的私信已经满足需求了。集成 IM 完全没有意义:im 需要挂在后台,就需要一直开着论坛页面,这一点都不现实呀。。。 最后,IM 这东西,做到容易,做好太难 |
63
nihiue 2018-07-16 18:44:39 +08:00 via Android
ms lync 看一下呗
|
64
LINAICAI 2018-07-16 18:55:01 +08:00
你要不是有 qq 那样的宏大计划,还是不要重复造轮子了
|
65
hlwjia 2018-07-16 18:57:50 +08:00
我就坐等楼主的开源
|
66
j 2018-07-16 20:08:17 +08:00
我觉得你对 im 的复杂度估计得太低了。rocket.chat 是开源的,但是光他的客户端代码就够几十个人的团队开发很久了。开发个半成品几十行代码很容易,想要做好,恩,没有任何想法。
|
67
Priest 2018-07-16 20:15:47 +08:00 via Android
我司在用 mattermost,日常使用没问题,除了查找历史消息功能比较矬外。
|
68
c6h6benzene 2018-07-16 20:52:27 +08:00 via iPhone
团队即时协作或者沟通? Slack 或者 Microsoft Teams (后者最近刚免费)好像不错。
|
69
CForce 2018-07-16 21:32:20 +08:00 4
在大公司做了好几年专职 IM 的来说两句。IM 这个东西涉及的太多了,就像楼上说的,做到容易,做好太难,我还想说一句:功夫在诗外。
服务器从推送通道维护(光这个就很难做好)、消息数据存储结构(这个往往和具体的业务架构有关,比如群聊的业务形态和一对一肯定不一样,如果牵扯到群聊,又有群成员管理,对不同成员推送不同内容消息等),消息推送队列的维护(每个用户当前已读位置); 客户端的通道保活,端上的消息存储和清理,消息的顺序合并,性能和省电问题,消息洪峰处理(比如大的群聊或者直播间),包括聊天的界面; 后续扩展的话,如果是一个成熟的增量同步上下行结构,在这个基础上可做的事情也非常多。 |
70
CForce 2018-07-16 21:43:16 +08:00
其实 IM 在一个应用中,往往是属于一个基础功能的角色,更多的是适当地调整来找到适合自己业务形态的 IM 策略,比如电商(A 家)和社交(T 家)的 IM 策略肯定是不一样的,但是最基础的那些都大同小异。
|
71
ericls 2018-07-16 21:43:50 +08:00 via iPhone
Slack 这么不普及吗?
Microsoft teams 也免费了 但是没有 linux 端 |
72
zlzdbf 2018-07-16 21:56:47 +08:00 via Android
现在在一家互联网公司,做自研的 IM,技术难度不大,但是做好真的不容易
|
73
vebuqi 2018-07-16 21:57:06 +08:00
|
74
lguan 2018-07-17 00:49:48 +08:00
@SAM2O2O 还不错,该有的都有,更新也很频繁,但团队的人是不是还是会跑到微信或者 qq 上,我只能尽量要求他们到 rocket 上进行,特别是针对重要的事情进行讨论的时候
|
75
msg7086 2018-07-17 01:44:06 +08:00
我们现在用的 mattermost。
|
77
chendeshen 2018-07-17 06:58:00 +08:00 via Android
群晖 chat 套件
|
78
jjs4500 2018-07-17 08:22:35 +08:00
美团出的 IM:大象,了解一下。
|
79
zchlwj 2018-07-17 09:03:43 +08:00
我司最开始是自研 im,现在换腾讯 tim 了
|
80
zzzmode 2018-07-17 09:24:49 +08:00
|
81
macha 2018-07-17 10:56:59 +08:00
我现在维护一个简易版的,都是公司内部人在用,消息都是基于 HTTP 的。如果需求只是点对点收发消息的话,后端就搞一个消息队列就行了。前端倒是复杂一点,尤其是 PC 客户端,没有现成的轮子。Teamtalk 我研究过一点,可以参考的地方很多。
|
82
HackerOO7 2018-07-17 11:20:22 +08:00
以前公司基于 https://chatsecure.org/ 做个一个内部 IM,XMPP
|
83
SAM2O2O OP @j 目前我们也在做一款开源的,你说的对但是客户端的代码就需要很大的开发量,我们陆续准备开放出来,目前服务端已经开源了
|
84
SAM2O2O OP @CForce 感谢~基础的那些都大同小异,我们就是想做这些基础的有共性的东西,然后开源给大家,目前已经开始做了,之前也做了一款开源的,下个目标是全端开源
|
90
alvince 2018-08-16 10:42:04 +08:00
话说你们都没人知道 GoBelieve-IM 吗。。
|
93
shadowpms 2019-02-15 16:45:57 +08:00
shadow-forum.com 来 我们讨论下 ,我想做 IM 不是 i 一天两天
|
94
xiaoyouqiang 2019-10-22 22:43:14 +08:00
|
95
zchlwj 2019-10-23 09:13:49 +08:00 1
|
96
maximtop 2021-08-06 11:49:33 +08:00
欣赏楼主的勇气和魄力,不过就像 @CForce 所说,专职做过的人才知道这是个综合性的系统,涉及的内容技术非常多。
我们美信拓扑这次重新设计实现,用了上百人月才完成,当前已开源代码已经接近 20 万行,这还并不包括核心跨平台客户端和服务端,感兴趣的话可以去看看: https://github.com/maxim-top/maxims-bistro/blob/master/美信拓扑开源 MTOS.md 其实我想说的是,从企业角度来讲,其实关注的还是投入产出。你准备投入多少人力研发并持续维护这样一套系统,安卓、iOS 、Web 、服务端,每端几个人投入得起? 还是说用一套我们成熟的方案,像我们现在完成了云原生改造,私有云给 100 人用的规格已经可以按月付费,每月 199 元了? 当然,从个人和社区的角度来看,更多的人关注并研究肯定是有价值的,这也是我们会持续开源的原因。 感兴趣的话,一起来玩呀 :P |