查看: 978|回复: 0
打印 上一主题 下一主题

[其他] 关于数据同步

[复制链接]

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38266
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-12-27 05:45:43 |只看该作者 |倒序浏览

关于数据同步

一说到数据同步,我们会想到的数据有两种:动态数据、静态数据。静态数据大家可以通过配置表(unity3d中可以采用可序列化文件)或启动拉取的方式更新。动态数据可以通过服务器同步进行更新。

在做数据同步的时候新手通常会犯两个方面的错误:

1.      本地操作,自行修改本地数据;
2.      服务器强控,所有逻辑、弹出框、逻辑等全由服务器控制。
我们先讨论,本地自行修改数据的弊端。本地自行修改数据,不论是服务器返回成功前还是成功后修改,都会有一个不可避免的[color=rgb(85, 85, 85) !important]问题:服务器数据修改失败。如果出现这种情况,本地认为修改成功,会因此引发的问题将多不胜数。此外,如果服务器逻辑错误,修改成功后,返回了错误,本地不修改数据,将造成更严重的后果。
如果采用服务器强控,即客户端只接收指定的少数几个命令用于弹出界面,和处理少量逻辑。这样做会使服务器压力非常大,虽然现在硬件、带宽不值钱了。同时,服务器要针对来自不同客户端的请求发送不同回包,比如:如果我们的应用是一个多语言的应用。

针对以上问题,所以我们在做数据同步的时候要尽量避免(当然局部地方,非常肯定不会有问题的时候也可以用)。这里提供一种方式:

1.      客户端处理必要逻辑和基本操作请求;
2.      服务器在接到客户端请求后做严格的条件检测,检测后修改数据,修改后先发数据同步包,再发送请求回包;
3.      客户端在收到数据同步包后,同步本地数据,并发送通知更新显示界面。

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-5-14 17:49 , Processed in 0.083307 second(s), 33 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部