本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

码报:【j2开奖】今年最牛逼的愚人节项目是怎么做出来的(2)

时间:2017-04-27 06:03来源:668论坛 作者:118KJ 点击:
我们每年 愚人节 的传统是发起一次探索人类大规模互动的 项目 。 今年 的项目是创造一块协作画板,每个用户每 5 分钟可以填充一个像素点。这种方式降

  我们每年愚人节的传统是发起一次探索人类大规模互动的项目今年的项目是创造一块协作画板,每个用户每 5 分钟可以填充一个像素点。这种方式降低了个人在复杂创作中的重要性,且使得大规模的协作变为必须。每个像素点都实时展示给观众。

  这个项目涵盖了前后端研发和移动研发的支持,并且大部分基于Reddit现有技术实现。本文将会从技术角度详述如何实现这一项目的。

定义需求

  定义愚人节项目需求至关重要,因为没有少量测试的机会,一上线即面向所有Reddit用户。如果上线功能不够完美,很难吸引足够的用户来完成这个项目并做的很有意思。

画布必须为1000*1000才足够大

所有人同时都必须看到同一画面,否则很难协作

至少支持10万人同时协作

用户每五分钟可以涂一个像素,意味着我们要支持每五分钟10万个像素点更新(333次/秒)

即便在访问高峰期也不会影响网站其它功能的正常使用

需要灵活的设置以备意外的瓶颈或者失败。这就要求画板大小和更新速度云端控制以防数据过大或者刷新过快

需要开放 API 和保持透明,如果需要,Reddit 社区才能在上面工作。

后端研发

  后端的挑战在于要保证所有用户的页面实时一致。解决方案是一旦用户方接收到像素点的变更,会初始化用户页面状态,并立即向服务端请求完整的最新画板。要做到这点,我们需要保证画板完整状态的请求发送速度足够快。

API

接收全画板

填充像素

获取单像素的详情

Websockets

前端研发

  跨平台无缝体验对前端有很大挑战 – 要跨越桌面端,移动网页端,atv,iOS端和安卓端。相应的 UI 需要满足 3 样条件:

实时显示画板

允许用户和画板互动

在各平台都可以进行操作,包括移动应用端

  UI 的主要精力放在画板上,Canvas API 非常合适。具体工作如下:

做画板

做初始状态画板

处理 websocket 更新

与画板的互动

画板缩放 – 方便查看效果

相机控制板 – 方便移动和切换位置

对移动应用的支持

经验和教训

永远无法面面俱到,总会遗漏:

由于有个技术问题没有想得深入,在问题出现初期被忽略了,导致后来要不停的手动切换连接超时时间。

机器永远只是机器:

在项目末尾阶段,间歇性的小错误导致很多用户不断的刷新重试,从而形成了一股巨大的“重试”浪潮,系统自身无法应对这种问题,只能人工进行干预。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容