pomelo 开发棋牌手游 (博客迁移)

  一、整服务器部署架构。

服务端包含:两组server

  1. connector server :  用于建立后维护长连接、根据用户不同的ip一致性hash分配到固定server; 维持session; 路由转发
  2. room Server:
    • 一个room server 代表一个游戏房间, 例如初级房、中级房等。只有同一房间的用户可以组成游戏。room server 维护游戏牌局信息,处理开始,叫分,出牌,游戏结束等所有业务逻辑。
    • room Server 同各个connector server 都保持一个长连接socket通信。
    • 目前:只有同房间的用户可以互相聊天。
    • 在room server,  根据游戏用户session中存储的connector id, 找到同游戏用户建立长连接的connecotr server,  通过channel service 将room server中产生的消息,下发到各个用户。




二、room server 设计(以斗地主为例)。

  1. 在每个room server 的进程中都各自包含一个单例的room service 对象。
  2. 在进程启动时room service 对象负责初始化100张桌子,这200张桌子永久存在。
  3. 每个桌子对象里,包含一个poker对象,poker 对象用户初始化手牌,记录出牌,炸弹等信息,保持当前游戏的各用户手牌信息; poker对象在一句游戏结束时重新初始化。
  4. room service 对象中包含一个players[]数据,存储登录到当前房间的所有用户。 定时器没3秒检查,将举手的但不在牌桌中的用户每3个一组组成牌局,同时将不在游戏中的离线用户以及2分钟内没举手的用户踢出房间。


 三、出牌的处理流程

  1. client 发出playHandle.doPushCards 请求时。
  2. 框架中有connector server 将dopushcards请求路由到后端的 room server 服务器, 交个它的playHandler 的doPushCards方法处理
  3. playHandler通过请求的 uid获取得到room service 中的player对象,调用player对象的doPushCards方法。
  4. 如过dopushcards为最后一轮牌,游戏介绍,在desk对象中emit  gameOver事件,用于持久化数据


https://github.com/NetEase/pomelo

https://github.com/NetEase/pomelo/wiki/Home-in-Chinese

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Linux下安装和使用Pomelo,你可以按照以下步骤进行操作: 1. 首先,你需要在Linux系统上安装Node.js。你可以通过包管理器来安装Node.js,具体的安装方法可以参考[这个链接](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#debian-and-ubuntu-based-linux-distributions) 。 2. 安装完成后,你可以使用npm来全局安装Pomelo命令行工具。你可以在终端中输入以下命令来安装Pomelo: ``` npm install -g pomelo ``` 这样,Pomelo的命令行工具就会被安装到你的系统中。 3. 安装完成后,你可以使用Pomelo命令行工具来创建和管理Pomelo项目。你可以在终端中输入以下命令来查看Pomelo的命令行工具使用方法: ``` pomelo --help ``` 这样,你就可以了解到如何创建和管理Pomelo项目了。如果你想要了解更多Pomelo的相关信息,你可以参考[这个链接](https://github.com/NetEase/pomelo/wiki/Home-in-Chinese) 。 总结起来,你需要先安装Node.js,然后使用npm来全局安装Pomelo命令行工具,最后你就可以使用Pomelo命令行工具来创建和管理Pomelo项目了。希望这些信息对你有帮助!如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux下Pomelo环境配置](https://blog.csdn.net/xufeng0991/article/details/45850207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值