17xuee 认为手游页游和端游的服务端本质上没区别,区别的是游戏类型。 类型1 :卡牌、跑酷等弱交互服务端 卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面 PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP 服务器: 登录时可以使用非对称加密(RSA, DH),服务器根据客户端uid,当前时间戳还有服务端私钥,计算哈希得到的加密 key 并发送给客户端。之后双方都用 HTTP 通信,并用那个 key进行 RC4 加密。客户端收到 key和时间戳后保存在内存,用于之后通信,服务端不需要保存 key,因为每次都可以根据客户端传上来的 uid 和 时间戳 以及服务端自己的私钥计算得到。用模仿 TLS 的行为,来保证多次 HTTP 请求间的客户端身份,并通过时间戳保证同一人两次登录密钥不同。 每局开始时,访问一下,请求一下关卡数据,玩完了又提交一下,验算一下是否合法,获得什么奖励,数据库用单台 MySQL 或者 MongoDB 即可,后端的 Redis 做缓存(可选)。如果要实现通知,那么让客户端定时 15 秒轮询一下服务器,如果有消息就取下来,如果没消息可以逐步放长轮询时间,比如 30 秒;如果有消息,就缩短轮询时间到 10 秒,5 秒,即便两人聊天,延迟也能自适应。 此类服务器用来实现一款三国类策略或者卡牌及酷跑的游戏已经绰绰有余,这类游戏因为逻辑简单,玩家之间交互不强,使用 HTTP 来开发的话,开发速度快,调试只需要一个浏览器就可以把逻辑调试清楚了。 类型2 :第一代游戏服务器 1 9 7 8 1978 年,英国著名的财经学校 University of Essex的学生 Roy Trubshaw编写了世界上第一个 MUD 程序《MUD1》,在 University of Essex于 1980 年接入 ARPANET 之后加入了不少外部的玩家,甚至包括国外的玩家。《MUD1》程序的源代码在 ARPANET 共享之后出现了众多的改编版本,至此 MUD 才在全世界广泛流行起来。不断完善的 MUD1 的基础上产生了开源的 MudOS(1991),成为众多网游的鼻祖: MUDOS 采用 C 语言开发,因为玩家和玩家之间有比较强的交互(聊天,交易,PK),MUDOS 使用单线程无阻塞套接字来服务所有玩家,所有玩家的请求都发到同一个线程去处理,主线程每隔1 秒钟更新一次所有对象(网络收发,更新对象状态机,处理超时,刷新地图,刷新NPC)。 游戏世界采用房间的形式组织起来,每个房间有东南西北四个方向可以移动到下一个房间,由于欧美...