iOS上获取当前时间戳非常简单
NSTimeInterval timeInterval = [[NSDate date] timeIntervalSince1970];
如上,一行代码即可实现需求。但今天在做某个场景时,才突然想起,如果用户修改了iPhone本地的时间。不知道会不会影响到时间戳。我之前是知道安卓上是明确不可以的,但潜意识老是觉得在iOS上拿到的时间戳,肯定是即使用户改了日期,也是正确的时间戳。今天试了一下实验,才发现并不是这样的。iPhone上修改日期时间后,时间戳就会变成修改后的时间戳。
当我意识到的时候,我立马脑海里想到了我们App所有的有关时间戳场景,看有没有漏洞。
1.订单:时间戳均由后台去生成,没关系。
2.IM:即时通讯这一块,取本地时间戳,时间不准倒是没什么影响。顶多是UI上的显示,但用户是自己调了日期的,不能说是UI显示不对。所以可以忽略
3.直播间推流:因为即构的深坑。我们直播间里很多功能是和自己服务器呈弱相关。比如推流时间戳这一块,既不是即构服务器生成的。也不是我们服务器生成的,而是取的本地时间戳。在上麦座位的场景下【比如俩人同时点一个座位抢麦】如果时间戳不准,就会使得顺序发生bug。和安卓讨论了一下。我们决定暂时不处理。当这个场景出现时,需要满足和别人同时点座位,并且自己也调时间。获得的收益是和主播连麦。但主播本身拥有很强的控制能力,即使有人这样乱捣乱,也可以直接踢掉这个人。影响倒是不大。