webIm 聊天,客服系统研发历程,欢迎大家沟通交流讨论 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaoyouqiang
V2EX    PHP

webIm 聊天,客服系统研发历程,欢迎大家沟通交流讨论

  •  
  •   xiaoyouqiang 2019-11-05 11:48:52 +08:00 3832 次点击
    这是一个创建于 2169 天前的主题,其中的信息可能已经有所发展或是发生改变。
    曾经有一个银行的客户项目中需要用到 webIM 聊天及客服功能,客户的需求是网站内的用户可以互相加好友,可以建群,可以发图片,发表情,还可以像客服系统一样可以向任何店家发起回话。

    最初的想法是想找一个比较成熟的开源的 webIM 产品集成到项目中,对比了几个国外的开源项目和国内的项目,都不满意,要么就是集成到系统不方便,要么就是代码,架构质量较低,很多都还是基于轮询的,没法满足我的需求,索性下定决心自己开发。

    为了能比较快的上线完成这个 webIm的模块,做了以下选型和技术思考。
    1、前后端通信肯定要基于 socket,但是 socket 不能自己造轮子,所以选择了 workman 封闭式 socket 框架,当然也可以选择 swoole,但是 swoole 对于通信聊天方面的封装没有 workman 方便,swoole 需要进行比较大的二次封装。
    2、UI 前端也同样选择了一套现成的 UI 界面。
    3、该 webIM 系统需要与其他系统能够方便的进行集成及二次开发,如鉴权,用户体系融合等
    4、需要上线短信重连
    5、需要分布式扩展,支持高并发,这点 workman 已经可以支持。
    6、需要一个管理后台,管理聊天用户,聊天记录,聊天群

    在和客户确定了 webIm 功能需求和架构选型和技术设计后,然后就是编码实现了,其间躺了很多坑,当然实现完系统后技术上也有一些提升,尤其是对于地层协议,技术理论等。

    后话:本来还想在额外实现基于 h5 的语音,语音和视频连线功能的,在经过一番调研后,发现 h5 对于语音和视频这方的支持还不完善,兼容性不好,索性就先放一放。


    **自我介绍:**
    技术老鸟一枚,技术爱好者,10 年+技术从业经验,后端架构师,欢迎爱好技术的你来交流:weixin:xq20813341
    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     965 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 22:38 PVG 06:38 LAX 15:38 JFK 18:38
    Do have faith in what you're doing.
    ubao 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