求教,有哪些不错的开源的即时聊天软件 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
szdbb112
V2EX    Android

求教,有哪些不错的开源的即时聊天软件

  •  3
     
  •   szdbb112 2015-10-14 19:56:38 +08:00 17973 次点击
    这是一个创建于 3661 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想要开发一个 app ( android ),希望提供一个样板

    22 条回复    2015-10-25 18:13:02 +08:00
    jamesxu
        1
    jamesxu  
       2015-10-14 20:35:05 +08:00 via iPhone   1
    telegram
    gzlock
        2
    gzlock  
       2015-10-14 20:52:11 +08:00 via Android   1
    leancloud 的 IM demo ,我记得在 GitHub 开源
    sheandhee
        3
    sheandhee  
       2015-10-14 21:03:25 +08:00   1
    ryrubyy
        4
    ryrubyy  
       2015-10-14 21:21:58 +08:00
    XMPP 协议和 IRC 协议的开源客户端很多
    IRC 的:
    AiCiA (界面,功能特别简单,节省数据)
    Yaaic ( Yet another Android IRCC Client ,界面和功能比上一个好)
    Atomic (基于 Yaaic ,增添更多实用功能)
    均是开源软件。
    也有很多优秀的 XMPP 开源软件。
    rootooroot
        5
    rootooroot  
       2015-10-14 21:25:00 +08:00
    TOX
    rootooroot
        6
    rootooroot  
       2015-10-14 21:25:35 +08:00
    看错标题
    zhjits
        7
    zhjits  
       2015-10-14 21:42:57 +08:00
    anthonyeef
        8
    anthonyeef  
       2015-10-14 22:02:39 +08:00 via Android
    Telegram +1 。

    不代好。
    gzlock
        9
    gzlock  
       2015-10-15 01:07:29 +08:00
    @jamesxu
    @sheandhee
    @ryrubyy
    @anthonyeef 其实用 WebSocket+aes 加密行得通吗?
    sogisha
        10
    sogisha  
       2015-10-15 07:03:07 +08:00
    @gzlock AES 是对称加密,你还至少需要了解如何交换 AES 密钥的知识(需要不对称加密或者某种密钥交换协议)。
    此外,还要考虑消息的完整性,因为即使是加密了,传输中的错误或者其他因素也可以导致消息在解密后和原文不一样。还要考虑消息来源的可靠性,包括如何确定发送者没有被仿冒。还有可能需要可以或者不可抵赖性,等等。
    way2explore2
        11
    way2explore2  
       2015-10-15 07:37:46 +08:00
    Pidgin
    gzlock
        12
    gzlock  
       2015-10-15 12:06:52 +08:00 via Android
    @sogisha 只能由客户端软件集成 AES 密匙了吧
    sogisha
        13
    sogisha  
       2015-10-19 09:59:23 +08:00
    @gzlock 你这不是坑爹呢么,如果有人分析了你的代码,这和没有加密还有区别吗?
    (别和我说使用混淆什么的,没用。密码学第一定律:你的加密方式总是公开的。)

    你需要使用不对称加密,或者例如 Diffie-Hellman 这样的密钥交换协议。
    gzlock
        14
    gzlock  
       2015-10-19 13:14:28 +08:00 via Android
    @sogisha 那通过 Res 交换随机生成的 AES 密匙?
    LeanCloudRRY
        15
    LeanCloudRRY  
       2015-10-19 16:12:28 +08:00
    hi~我们的实时通信部分希望可以给您参考→https://leancloud.cn/docs/realtime_v2.html
    包括我们的一些 Demo 还有部分源码。
    sogisha
        16
    sogisha  
       2015-10-19 17:28:16 +08:00
    @gzlock Res 是什么?
    gzlock
        17
    gzlock  
       2015-10-19 21:15:24 +08:00
    @sogisha RSA ,打错了。。。
    sogisha
        18
    sogisha  
       2015-10-20 00:50:57 +08:00   1
    @gzlock 可以, RSA 现在需要 2048bit 以上的 RSA 才算安全。你必须想办法能验证你所使用的、认为是对方的 RSA 公钥确实来自于对方,避免中间人攻击。

    这方法最简单的是,将自己的 RSA 公钥散列,然后取前若干比特生成一个几个字母或者汉字构成的短句。对方收到你的公钥之后,也用同样的算法生成一个短句。然后两人用语音等方式核对。

    如果你能进一步管理公钥,还可以参考 ZRTP 的协议:因为两个人第一次建立的通信很少有被中间人攻击盯上的,所以可以用过去成功交换的密钥作为对未来的密钥的认证。
    gzlock
        19
    gzlock  
       2015-10-20 01:58:41 +08:00 via Android
    @sogisha 慢,慢着。。。其实我初衷只是想用 RSA+AES 进行 restful (不想弄 HTTPS )和 websocket (不想弄 wss )客户端和服务器之间数据通信
    为嘛不想用 HTTPS 和 wss 呢,其实就是不会弄,怕玩坏服务器
    图的只是数据不会直白的在互联网上传输
    其实我感觉用 base64 然后随便混淆一下 base64 字符串的一些位置的字符也可以达到目的,例如 a 换成 b , 1 换成 2 之类的
    sogisha
        20
    sogisha  
       2015-10-20 06:32:14 +08:00   1
    @gzlock 看你要安全到什么程度了。用 Base64 只能让你的 ISP 或者维护网络的人没什么罪恶感(不会一眼看出东西)。想破解几分钟就够了。

    如果是 RSA+AES ,那就是实际意义上很安全了,实现得好的话破解需要很多很多很多资源的那种。比如需要超级计算机。

    如果你嫌 AES 的实现太复杂或者太慢,可以考虑用 Salsa20 。交换密钥可以换成 curve25519 。这里只是谈剩下的问题,就是实现安全目标的链条上还缺少的一环。
    Live4Liberty
        21
    Live4Liberty  
       2015-10-24 17:20:31 +08:00
    448sv5leI28Dp0YY
        22
    448sv5leI28Dp0YY  
       2015-10-25 18:13:02 +08:00
    telegram 很不错
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3029 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 12:48 PVG 20:48 LAX 05:48 JFK 08:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86