基于IM实现直播礼物效果
首先,想要实现直播礼物效果,是通信的一种
有两种方案:
- 基于TCP/IP和UDP的长连接 - 即时通讯IM方案
- 基于HTTP的短连接 并高频调用 - 请求-响应
即时通讯可以选择,融云,网易,腾讯,融云和腾讯的即时通讯是免费的(对用户量有要求,小公司足够了)
建议用腾讯吧,毕竟做了这么多年通讯,效果还是应该问题,利于后期支撑,融云通讯开始收费了,以前免费的
我这里用的是网易的,他发信息的次数有限制,好像是200次/分钟,大于这个就会自动屏蔽该用户的消息,不过也足够了。
第一种:网易的IM提供发送文字,发送图片,发送文件功能·····如图:
我们可以在直播房间发送任何你想发送的东西,然后调用相关接口,实现接收,不过类似的这种东西需要归档和解档处理,网易是这样做的
这里用到的是归档操作,想了解归档请看这里
http://blog.csdn.net/xoxo_x/article/details/53313850
大家可以参考一下,在你处理的时候需要根据消息的类型type分类,有一丢丢麻烦,我没有这样做。
然而,归档是必须的,虽然自定义字符串,作为识别,很方便,但是,从长远来讲,归档是必须的,因为,自定义字符串识别,有太多的冗余字段,维护起来并不方便,希望大家不要贪图一时麻烦,当然,如果对于高并发要求不高的就无所谓了
第二种方法:我是这样做的,我对发送礼物,添加一个特殊加密字段,然后发送文本信息,组群用户接收到之后会判断处理,当文本信息为礼物字段时,进行拦截,然后代码进行操作,实现UI变化,一定要拦截到信息,否则用户在聊天界面会收到,该加密的特殊字符串,那么老板就哭了。部分代码如下:
因为收费的原因,即使你知道了特殊字段的含义,然而并没有什么用,后台会进行用户金钱验证,没有钱,扣费不成功依旧发不出礼物
关于本地礼物动画是怎么写的,网上有很多Demo,一会儿我会提供给大家一个demo链接
礼物效果也不是那么简单,需要用到线程的分配,你需要处理高的并发下的收到的大量信息,是如何井条有序的显示在屏幕上的,这点需要点功底,我这里会给大家一个非常不错的demo。
那么整个消息的发送,,接收,,显示情况是如何进行的?
首先,你需要自己写一个礼物的presentBar,用collectiobview来写,这个不固定,设置点击事件在点击事件中,出发sendmessage操作,如果使用特殊加密字段。那么你给每一个礼物添加一个特殊的字符串就好了,然后sendMessage操作,发送的是一个文本信息。
礼物的展示列表最好用collectionview写,各大直播平台用的应该也是,i简单方便
然后自己写一个代理,在直播页面调用:
效果图如下:
这时候网易的IM内部的方法就有用了,我们用的是他的IM,他哟一个IM的包,header中包含这方法。
当我们发送消息时,他会调用如下方法:
首先,
在这个操作中,我们需要更新本地的UI,需要做一次拦截工作。
然后,他会依次调用
:
- (void)onRecvMessages:(NSArray *)messages;;;;
在这个方法中我们收到消息,操作拦截,然后使用线程处理礼物信息,具体一点,还需要在这里处理礼物的模型,将模型信息储存到数组,然后,添加线程,线程在礼物Demo中已经封装好,大家不用担心,这样UI就处理完毕。
备注:是因为代理写错了,不是线程的问题
最后附上礼物效果图!
重点:礼物效果动画,并非我写,希望大家支持原创
关于这个礼物动画,涉及到了帧动画,以及自动释放池,写的相当牛逼,效果虽然一般,但是不会卡。
https://github.com/chenzhenJG/PresentAnimation
有人问我扣费在哪里进行?
答:这个需要在服务器进行,在本地肯定是不行的,需要保证用户数据的立即同步,否则会有风险,就像程序中加锁一样,不嗯能够用户在这个设备的钱花没了,另一个设备还有呢!
此外,我还想说一句,就是要注意高内聚低耦合,冗余代码要控制好,多自定义,不要在一个类中写几千行代码,后期维护累死你
基于IM实现直播礼物效果相关推荐
- 微信小程序动态点赞php,微信小程序小组件 基于Canvas实现直播点赞气泡效果
这篇文章主要为大家详细介绍了微信小程序小组件,基于Canvas实现直播点赞气泡效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 先发Canvas实现直播点赞气泡效果图: 实现细节: 1.JS:d ...
- 微信小程序动态点赞php,微信小程序小组件基于Canvas实现直播点赞气泡效果
这篇文章主要为大家详细介绍了微信小程序小组件,基于Canvas实现直播点赞气泡效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 先发Canvas实现直播点赞气泡效果图: 实现细节: 1.JS: ...
- 映客都是互刷礼物吗_仿映客刷礼物效果—基本逻辑实现
项目介绍: 最近做了个直播项目,需要用到弹幕和刷礼物.在网上找了许多开源代码,发现都不是很适合自己的项目需求,于是利用空余时间将两个功能都实现下,这里分享出来,供大家一起学习.(关于弹幕的实现,大家可 ...
- 基于电商直播SDK快速实现一个淘宝直播APP【内附源码】
现在各大互联网APP都标配电商直播带货了,没有直播带货开发经验都感觉自己跟不上技术的进步.今天快速基于Java实现一个安卓端电商直播APP,深入理解整个电商直播开发流程.我们最终实现效果如下: 按照惯 ...
- 基于nginx-rtmp-module搭建直播系统
基于nginx-rtmp-module 搭建直播系统 1. nginx基础 2. nginx-rtmp-module基础 3. 实验操作 3.1 安装nginx 3.2 NRM的搭建 3.3 推流 3 ...
- 直播礼物特效-网易云直播礼物分析
直播礼物特效-网易云直播礼物分析 今天要分析的平台是网易云音乐的直播礼物.和QQ音乐一样,网易云算得上是国内数一数二的音乐大平台,也像QQ音乐等等一些音乐软件一样,跟随着互联网直播大潮开设了直播业务. ...
- 使用 Sticky-Kit 实现基于 jQuery 的元素固定效果
元素固定效果在网页中应用得很多,比较常见的使用场景有改进导航,显示广告.Sticky-Kit 是一个非常方便的 jQuery 插件,简化了创建/管理粘元素,有复杂的使用功能.这些功能包括:处理多个固定 ...
- ffmpeg推流_明白了以下5点思路,你也能用Python实现直播推流效果(技术活)
今天为大家带来的内容是:明白了以下5点思路,你也能用Python实现直播推流效果(技术活) 本文内容主要介绍了Python实现直播推流效果,主要是通过opencv读取视频对视频分割为帧,本文通过实例代 ...
- AWS Elemental推出新一代基于云的直播视频服务
亚马逊的AWS Elemental新推出了一种可靠,安全且灵活的实时视频传输服务MediaConnect,其主要功能包括视频源的获取,分发与共享. 文 / Ben Munson 翻译 / 咪宝 原文 ...
- 推荐20款基于 jQuery CSS 的文本效果插件
jQuery 和 CSS 可以说是设计和开发行业的一次革命.这一切如此简单,快捷的一站式服务.jQuery 允许你在你的网页中添加一些真正令人惊叹的东西而不用付出很大的努力,要感谢那些优秀的 jQue ...
最新文章
- PL/SQL第五章 Order by排序
- 【每日一算法】买卖股票的最佳时机
- 空气球+操作系统,海尔智能家居雄心何在?
- PHP语法(3.)环境变量
- Java 8系列(一): 日期/时间- JSR310( Date and Time API)
- NEO从源码分析看NEOVM
- sql远程mysql服务器查询_sql server 使用链接服务器远程查询
- javascript --- vue中简单的模板渲染
- SQL、LINQ、Lambda 三种用法
- mybatis foreach collection
- python中pass的使用_Python中pass语句的作用
- 简练软考知识点整理-管理项目团队
- samba 和 nfs 实验
- paip.提升性能---string split
- 5元的小乌龟吃什么_小乌龟吃什么最好?
- 如何删除Word中的边框线
- 《东周列国志》第一百一回 秦王灭周迁九鼎 廉颇败燕杀二将
- safari java 插件_精通Safari – 如何在 Mac 版 Safari 中使用互联网插件
- 红色警戒2修改器原理百科(三)
- 学会对VUE的SEO优化,你的网站总是排在前面