小问题也可能会越来越大
C/S数据交互
在服务器和客户端的交互中,经常会有一些奇奇怪怪的点影响整体设计
不过不论是怎样,网络游戏无外乎就是使用TCP、UDP或者比较新的KCP(据说这个很强)来发送一些打包过的数据,不管用长连接还是短链接,万变不离其宗。
基于协议的类RPC交互
确实,为了实现最基本的功能,用JSON都可以让服务器和客户端完成交互,但这毕竟不安全。
比较现实也是很多人在用的方法就是,将数据结构体按照某种特定的方式序列化后进行加密,当然这个我不说大家应该也都知道。
基于我组的项目需求,我们使用了一种在长连接下的,类似RPC的交互模式。之所以说是类似RPC,是因为数据的交互可能是多对多的,而非一对一。
不能让他们解包!
解包,基本上所有游戏都遇到过这个问题。
当然解包本身对游戏并不一定会有什么影响,很多厂商对解包也都不会加以限制。
但我们这个商城呀,它毕竟是个商城,所以不能随意的就让商城信息被解包获取到。
因此,数据完全是被放在服务器端的,由服务器来判断客户端能得到哪些信息,不能得到哪些信息。
这样也有一个好处——当然是小概率事件——就是可以防止策划上架商品时价格输错。不要认为这是一件不可能发生的事,这是真的出现过的。
具体一点点的逻辑?
整体而言,交互的逻辑是类似RPC的过程,基本上可以拆解为以下几个部分。
(代码?代码是不可能贴的,反正具体到业务上逻辑就那么简单