关于社交项目、融云的说明

2017-03-20  本文已影响0人  冰凝雪国
(适用于ydm-java接口与后台,如有误入,但愿也能给您带来帮助)
引子:

涉及过3个社交项目,后宫、聊妹、蜗伴,均用的是融云作为视频聊天的第三方;实际上融云主攻IM文字聊天,后期才增加了声网的视频、音频通话,作为服务端涉及的功能也很少,只做了一些必要的;因为融云提供的和业务上关联不大,我们的业务是一对一聊天扣费,普通的文字聊天且不谈,走一条扣一次就行了,但是涉及到通话类的,服务端根本无法100%掌控App两端的结束(没电、断网等不确定因素),所以在这块业务和代码上处理的就繁琐很多。

服务端关于融云的调用:

融云提供 官方服务端demo,可以拿来直接用。
服务端文档
融云是这样描述的:

  • 用户服务:从 App 服务端管理用户状态,获取身份认证令牌等。

实际上我们只用了用户服务的一点点,其他的因为种种原因:

细读用户服务的文档可知,用户要在App端进行聊天会话需要一个标识符(token),这个token由服务端生成,代码里的做法就是在注册的时候将id、头像、昵称作为参数请求融云,得到返回值并保存;在修改资料的时候还需要更新一下头像、昵称(如果用户修改的话)。服务端就利用融云做了这一步而已,像用户封禁、黑名单均是自己的逻辑控制的,后期的话可以完全替代,但是这样做会影响可移植性(或许我是多虑了)。


获取token的流程

另外,敏感词也可以用一用,完善应用。(比如不让用户输入QQ、微信号什么的)

服务端关于社交 聊天 的逻辑:

大体上都在 IMController 以及 ChatService 层,下面以A和B进行聊天作为示例:

  1. 发普通的聊天以及送礼物均是发一下走一下接口,接口里直接扣掉A的金币,根据B的分成比例给B转为人民币字段值;
  2. 语音、视频聊天则是A和B两端在融云提示接通时都走一次接通接口,接口做去重处理返回A和B同一个订单号,然后A和B每隔1分钟请求扣费接口,接口同样做去重处理只扣一次,并返回付费人的金币数,前端根据返回值进行判断,另外,如果A正常挂断了,也会走一次扣费接口,说白了,接口就两个,一个是创建的接口,另一个就是扣费的接口;在后期蜗伴项目中,想要达到空闲这一状态的判断,在扣费接口里多了一个值,叫做挂断,代表这个接口挂断了,A和B也就都空闲了。

写于2017/03/20。

上一篇 下一篇

猜你喜欢

热点阅读