跳转到内容

客户端-服务器介绍

在元梦之星制作的地图发布后有两种游玩模式:单人模式(单人游玩)与多人模式(一起玩)。作为一款需要联网的游戏,无论单人模式还是多人模式都需要进行网络通信,而在网络通信中,客户端(Client)和服务端(Server)是两个核心角色,它们共同构成了客户端-服务端模型(Client/Server 模型)。

客户端-服务器的角色分工

服务端和客户端在网络中扮演不同的角色,分工明确:

  • 客户端向用户提供操作界面,用户可以通过操作界面向服务器发送请求,比如一个按钮对应一个请求,点击后向服务端发送,服务端返回处理结果。

  • 服务端负责仲裁客户端请求和同步不同客户端之间的数据。比如一个创建在服务端的元件,在客户端做出的改变会经过服务端的仲裁,驳回对其的改变,最终其位置会以服务端为准。但如果一个元件创建在本地客户端,本地客户端对其的改变无需经过服务器仲裁。

  • 客户端和服务端可相互向对方发送请求,在处理后向对方返回响应。

  • 客户端-服务器交互过程:

    1. 一方发起请求。
    2. 处理请求并返回响应。
    3. 对方接收响应。

客户端-服务器的通信方式

客户端-服务器之间的通信是通过网络进行的,通常遵循以下步骤:

1. 建立连接: 客户端与服务端通过注册网络协议建立连接。 2. 发送请求: 客户端或服务端一方发送请求,请求中包含了需要执行的操作或获取的资源。 3. 处理请求: 另一方接收请求后,根据请求类型执行相应的操作(如查询数据等)。 4. 返回响应: 接收请求的一方将处理结果打包成响应,发送回发起请求的一方。

以下是常见的通信方式:

客户端向服务端发送请求并接收响应

image1

客户端可以发送请求给服务端并接收响应。例如,在游戏中某个玩家打开界面查看自身等级,需要发送获取玩家数据的信息给服务端。服务端会根据玩家的数据执行响应,返回玩家的等级。

服务端发送消息到指定客户端

image2

服务端可以发送消息到指定的客户端,比如服务器分配玩家阵营时,对部分客户端发送消息指定其阵营为”元元队”,而对另外部分客户端发送消息指定其阵营为”梦梦队”。

服务端发送广播

image3

服务端向所有客户端发送消息,这种发送方式也被称为广播。例如在游戏中服务端向所有玩家同步游戏当前的状态,如游戏倒计时等。