首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  程序员

请大家给我们的开源 IM 解决方案提建议吧。

  •  1
     
  •   imndx · 232 天前 via Android · 4642 次点击
    这是一个创建于 232 天前的主题,其中的信息可能已经有所发展或是发生改变。

    上周五,发了一条有关我们搞的 IM 解决方案的帖子,结果涨了不少 star,谢谢大家。

    这是我们的 IM 系统,感兴趣的话,你都可以很容易自己部署一套自己玩:

    https://github.com/wildfirechat

    目前全平台支持,单聊、群聊、聊天室、公众号、voip 等,消息全链路加密。

    现在,我们在思考一个问题:

    是优先开发更多的外围系统,比如更好用的 bot 系统呢?还是优先去支持更多的平台?

    请问大家,你们都希望 IM 都能提供哪些功能?

    46 回复  |  直到 2019-06-30 07:52:19 +08:00
        1
    bengcaca   232 天前 via Android
    野狗挂了又来野火…
        2
    luojianxhlxt   232 天前
    ios、安卓、pc 这些客户端,为啥配置私有服务器一定要编译呢?
    做出客户端,做个配置页面,让别人自己配置一下直接用多好啊
        3
    imndx   232 天前 via Android
    @luojianxhlxt 这个问题,我们目前想的是,防止被滥用,故留了一点。
        4
    photon006   232 天前
    跟 rocket.chat 优势是什么呢?
    目前我也打算开发简单的聊天功能,用 socketcluster 实现。
        5
    joesonw   232 天前
    能自己用 IM 的基本都是开发团队. 那开发团队最看中的是什么呢? 你们自己选 IM/团队协作工具看中的又是什么呢?
        6
    imndx   232 天前
    @joesonw 现在的开发模式是复用一些成熟的组件,而不是全都从零自己开始写,我们的目标是为开发者提供一个简单、可靠的基础组件。
        7
    imndx   232 天前
    @bengcaca 野狗是商业公司,挂了就真挂了;而野火是开源项目,挂或不挂,代码都在哪,每个人都可以维护自己的分支。
        8
    90928yao   232 天前
    和 mattermost 比 有什么优势呢,以前用过 mattermost。
    顺便问下 你们 app 用了微信的 mars 吗?
        9
    90928yao   232 天前
    搞个 wechat bot 吧 看到 qq 群 就不想加了。。。本来还想进群学习下呢
        10
    imndx   232 天前
    @90928yao
    @photon006

    优势嘛,我觉得咱们都说中文也是个优势吧,哈哈

    另外,我们底层链接是基于微信的 mars 的,mars 针对国内的网络环境做了很多的优化,我们用起来非常稳定,效果非常好。
        11
    matolv   232 天前   ♥ 1
    matrix 了解一下
        12
    nanaw   232 天前 via Android   ♥ 1
    要我说先做好 UI 吧,好看才能吸引人。
    不知道你们是图省事还是觉得模仿微信是优势,我觉得这是劣势。。
        13
    imndx   232 天前
    @matolv 能贴一个地址吗?这个还真不了解。
        14
    AngryMagikarp   232 天前
    我最看重的是文档和接口的设计规范
        15
    imndx   232 天前
    @nanaw 谢谢建议,UI 目前是我们的一个劣势,努力 ing

    目前 App 只是用来演示我们的底层具备那些能力,是希望有开发者能在我们的基础上二次开发。
        16
    dynastysea   232 天前
    用户离线消息为啥只能收 1000 条。。。
        17
    imndx   232 天前
    @AngryMagikarp 谢谢建议,对的,对于一个开源项目来说,文档和接口设计的规范程度,直接反应了项目的质量。

    这些方面,我们会持续改进,目前 UIKit 层的接口,iOS 和 Android 不是很统一,需要改进。

    谢谢。
        18
    missdeer   232 天前   ♥ 1
    不知道有没有 fedoration ?就是比如 2 个人各自建了私服,可以让 2 个私服连起来,2 个私服下的客户端可以互发消息?
        19
    90928yao   232 天前
    还有个疑问 这是你们全职在弄 还是业余时间搞搞的
        20
    AngryMagikarp   232 天前   ♥ 1
    建议不要执着于功能,不同人有不同需求,功能永远都无法满足所有人。

    你应该先给自己的产品一个定位。比如安全性?隐私性?易部署?易扩展?诸如此类的。

    另外一定要注重文档建设,不然很难会有人加入。
        21
    AngryMagikarp   232 天前
    我之前也写过一个聊天服务器,不过一个人写功能很有限。https://gitlab.com/lightim Go 语言实现的。
        22
    imndx   232 天前
    @dynastysea 这个数其实可以改,但太多的话,端上收消息,可能会比较慢,这是个平衡。

    后续,我们可以把这个放到配置文件,可配置。
        23
    imndx   232 天前
    @missdeer 你这个想法有意思,但目前不支持,是集中式的。
        24
    imndx   232 天前
    @90928yao 我们有 5 个人,目前是业余时间搞,以后准备全职。
        25
    CodeCommunist   232 天前 via Android
    搞 im 的很多,但都各自为战,最后活下来的没多少。子弹短信的失败已经证明没人能撼动企鹅地位。另外推荐一个 telegram 后端的开源实现。
    https://github.com/nebula-chat/chatengine
        26
    imndx   232 天前
    @CodeCommunist 我们搞的不是通用的社交软件,我们提供了 IM 的能力,开发者可以在这上面发挥,然后开发产品。

    你的推荐,收藏了,谢谢。
        27
    lcj2class   232 天前 via iPhone
    Zulip 了解下
        28
    imndx   232 天前
    @lcj2class 谢谢推荐,我去了解一下。看来这个市场,产品还是非常多的。
        29
    tiaod   232 天前
    做 IM 的必须想一个问题,上古时期的 email 都支持 federation,你做一个新的 IM 反而不支持的话,那么你对自己的定位就是做企业內部协作工具了
        30
    jswh   232 天前
    @tiaod 请教 federation 是啥

    另外,im 的长连接不能你们是直接传输数据还是只是传输信令?我看微信的长链接也只是传输信令,具体的聊天数据红白事要通过 http api 获取。如果只是传输信令的话,我之前又考虑是不是可以用 mqtt 来直接替代长连接部分,协议更加完整,而且是公共协议。
        31
    jswh   231 天前
    @jswh 刚吃饱饭有点晕。修正一下。

    im 的长连接不知道你们是直接传输数据还是只是传输信令?我看微信的长链接也只是传输信令,具体的聊天数据还是要通过 http api 获取。如果只是传输信令的话,我之前有考虑是不是可以用 mqtt 来直接替代,协议更加完整,而且是公共协议。
        32
    tiaod   231 天前
    @jswh federation 前面 @missdeer 有说
        33
    ntop   231 天前   ♥ 1
    先加油吧!做开源的东西感觉还蛮难得,我之前和同事搞过一个游戏引擎(korok.io)。自我感觉是,如果你走开源路线就要有长期作战的准备,慢慢的等待项目孵化、发酵才能在市场夺得一席之地。如果你走的是商业路线,那就简单了花钱宣传,招人做商务,好处是很快就可以看见结果。如果有计划辞职出来搞,并且走开源路线的话觉得还是等等看比较好。
        34
    mv0x   231 天前   ♥ 1
    能开源做事情确实应该点赞,如果仅仅是做为一个爱好就好,如果做为一个商业项目,我个人感觉看不到太多的卖点。
    比如以前很好的 tox/tok,主打是去中心化,点到点之类的,但是也没有做起来。
    这个 tox 的客户端,从界面来说,确实比较美观。

    https://github.com/InsightIM
        35
    imndx   231 天前
    @tiaod 我们的定位是:为开发者提供安全、稳定、可靠的 IM 组件,开发者在他们的项目中集成我们的 IM 组件。
        36
    imndx   231 天前
    @jswh 小的数据,比如消息、信令之类的,我们是长短结合。
    文件之类的大数据,走的是短链接。

    另外,mqtt 是在长连接之上的。
        37
    imndx   231 天前
    @ntop

    看了下,你们的游戏引擎还挺有意思的。

    我们目前想的是,区分社区版和商业版,商业版会提供一些高级功能,比如集群等。

    嗯嗯,得在看看项目的发展情况,不能贸然辞职。
        38
    missdeer   231 天前
    @tiaod 就算是企业内部协作工具,也有很强烈的 federation 需求,比如思科家的 Jabber,微软家的 S4B (以前的 lync )都可以,也就国人长期只用 QQ 和微信,以为所有的 IM 就是这样的。
        39
    matolv   231 天前   ♥ 2
    @imndx https://github.com/matrix-org 服务器是 synapse,支持 federation,E2E 聊天,E2E 群聊,VOIP,视频等。客户端 Riot 全平台支持,含 android FCM,IOS apple push 或自带后台的 Fdroid 版本。该项目的愿景非常宏大,且维护频繁,你能想到的都有了。
        40
    zhfish   231 天前
    mark 下
    im 需求几乎都在客服上
    日常沟通的 im,微信 /钉钉已经够多了
        41
    zhfish   231 天前   ♥ 1
    客服方向的路几乎已经固定

    1. 分配客服
    2 .全平台支持,微信支付宝小程序
    3. bot,质检
    4. 呼叫中心,实现 AI 话务

    纯 IM 想不到用处,支持开源 IM,支持 mars
        42
    imndx   231 天前
    @zhfish 谢谢你建议,你说的很好,我先记录下来,仔细想想。
        43
    yukiir   231 天前
    有个叫微喇的 app,挺有意思的,在 IM 基础上加入了实时对讲,不知道用什么方式实现的。
        44
    imndx   231 天前
    @yukiir 最简单的一种实现方式是:一个抢麦服务器,控制现在跟谁说话。端上一直录音,每分钟发一条不可见消息给对方,对方收到消息直接播放。
        45
    firstfan   186 天前
    有个小问题,看介绍中说社区版可以支撑上百万用户,但请问有测试过同时在线用户数量么?
    因为作为社区版是单机的,连接都是挂一台机器上,本身压力还蛮大,我觉得可能也就能到两三万?
        46
    imndx   164 天前 via Android
    @firstfan 我们开发了基于 jmeter 的测试工具,也是开源的,你可以自行测试一下
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3666 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 28ms · UTC 05:17 · PVG 13:17 · LAX 21:17 · JFK 00:17
    ♥ Do have faith in what you're doing.