客户端-服务器介绍
在元梦之星制作的地图发布后有两种游玩模式:单人模式(单人游玩)与多人模式(一起玩)。作为一款需要联网的游戏,无论单人模式还是多人模式都需要进行网络通信,而在网络通信中,客户端(Client)和服务端(Server)是两个核心角色,它们共同构成了客户端-服务端模型(Client/Server 模型)。
客户端-服务器的角色分工
服务端和客户端在网络中扮演不同的角色,分工明确:
-
客户端向用户提供操作界面,用户可以通过操作界面向服务器发送请求,比如一个按钮对应一个请求,点击后向服务端发送,服务端返回处理结果。
-
服务端负责仲裁客户端请求和同步不同客户端之间的数据。比如一个创建在服务端的元件,在客户端做出的改变会经过服务端的仲裁,驳回对其的改变,最终其位置会以服务端为准。但如果一个元件创建在本地客户端,本地客户端对其的改变无需经过服务器仲裁。
-
客户端和服务端可相互向对方发送请求,在处理后向对方返回响应。
-
客户端-服务器交互过程:
- 一方发起请求。
- 处理请求并返回响应。
- 对方接收响应。
- 一方发起请求。
客户端-服务器的通信方式
客户端-服务器之间的通信是通过网络进行的,通常遵循以下步骤:
1. 建立连接: 客户端与服务端通过注册网络协议建立连接。 2. 发送请求: 客户端或服务端一方发送请求,请求中包含了需要执行的操作或获取的资源。 3. 处理请求: 另一方接收请求后,根据请求类型执行相应的操作(如查询数据等)。 4. 返回响应: 接收请求的一方将处理结果打包成响应,发送回发起请求的一方。
以下是常见的通信方式:
客户端向服务端发送请求并接收响应
客户端可以发送请求给服务端并接收响应。例如,在游戏中某个玩家打开界面查看自身等级,需要发送获取玩家数据的信息给服务端。服务端会根据玩家的数据执行响应,返回玩家的等级。
服务端发送消息到指定客户端
服务端可以发送消息到指定的客户端,比如服务器分配玩家阵营时,对部分客户端发送消息指定其阵营为”元元队”,而对另外部分客户端发送消息指定其阵营为”梦梦队”。
服务端发送广播
服务端向所有客户端发送消息,这种发送方式也被称为广播。例如在游戏中服务端向所有玩家同步游戏当前的状态,如游戏倒计时等。