请问该怎么实现对视频观看人数的限制?

2019-07-10 13:59:49 +08:00
 erisfloralia
场景:页面有各种类型的文件,对用户进行分组,不同组的用户对每个视频的观看总人数限制不一样。只有一直在播放才算做观看,关闭页面即算作不观看。

以前一直看各位 V 友大佬发帖讨论,没有发过贴,如果太过简单,求勿喷。= =
991 次点击
所在节点    问与答
6 条回复
icy37785
2019-07-11 14:16:21 +08:00
ajax 或者 websocket 二选一
erisfloralia
2019-07-12 08:37:52 +08:00
@icy37785 谢谢回答,我目前只会使用 onbeforeunload 来监控是否离开页面然后 ajax 往后台传数据,但是这个函数在火狐和 ie 没用?或者是我不太会用吗?看来只能用 websocket 了。 = =
icy37785
2019-07-12 09:02:58 +08:00
@erisfloralia 首先,在线人数的统计肯定是 websocket 效果最好,不管性能,还是精确度都比 ajax 要好,其次感觉你对于 ajax 的实现想复杂了,并不需要监控是否离开页面,ajax 轮询就可以了,前台访问在线人数接口,后台记录访问的客户端,设置过期时间就行了,统计客户端数量就可以知道在线人数。
erisfloralia
2019-07-12 09:51:52 +08:00
@icy37785 那么设置过期时间然后数据库查表应该会造成一定时间的延迟吧。无法马上统计出不在线的用户。为何 websocket 好一点(其实我还没用过 websocket,不清楚,只是大概了解一点)= =
icy37785
2019-07-12 11:38:45 +08:00
@erisfloralia 两个问题分开来回答,1.过期时间设置足够短,轮询设置足够快,延迟就可以忽略不计,比如一秒轮询一次,数据一秒过期,那么延迟就一秒,但是这样对服务器的压力就很大,所以轮询速度和服务器压力之间得自己去找到一个合适的平衡的事件间隔。
2.websocket 的优点,就是上面说的,ajax 轮询的缺点,websocket 实时性好,对服务器的压力小。
理解了大概的原理之后你应该想得明白到底是怎么回事的,其他的你上网查查资料,网上挺多的。
erisfloralia
2019-07-12 14:16:27 +08:00
@icy37785 好的,谢谢大佬详细解答 = =

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/581700

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX