- 论坛徽章:
- 0
|
本帖最后由 a_coder 于 2010-02-22 00:12 编辑
阿哦. 两边都是你哈~
怎么说呢. 我不考虑fork进程来做. 一方面他限制在linux, 另一方面, 每一个用户进来都fork进程这实在是有点杀鸡用牛刀的感觉. 毕竟棋牌游戏的逻辑已经简单的不能再简单了. 就是数字大小的判断.
PHP虽然不支持多线程. 但是考虑一下, 既然PHP有非阻塞得socket. 那么轮巡150人的话, 应该是相当快了. 毕竟棋牌游戏没有多少需要传输的数据, 而且在非阻塞状态下, 简单的150人轮巡都是毫秒级的, 缓冲区应该不会被严重阻塞. 而服务器要做的无非就是一个分配游戏桌/登录/发牌/牌面验证. 这里面只有在登录的时候需要数据库处理, 但如果服务端额外的进程来处理这个, 那么他也是一个非阻塞的形式. 在登录服务器处理完成之后返回数据给大厅服务器, 数据中包含处理结果/socket id/回调函数. 其他部分的逻辑都是内存操作, 也都是简单的加减法运算. 没有复杂的逻辑处理. 在游戏结束的时候涉及的数据库操作也跟登录有相同的原理. 同样并不阻塞操作. 如果这样, 及时不存在多线程, 简单的150人轮巡PHP应该可以胜任了.
服务器与客户端, 多个服务之间的通信也仅限于几十个或者几百个字节的通信. 你觉得如果变量的释放作的足够好, 那么PHP能够胜任这一工作么. 每个服务阵列支持150人. 单台服务器运行3个阵列支持450-500人.
这不比你们的大型RPG, 那个数据量很大, 人数很多. 用php来做socket显然不可能. php5.2.x版本在目前看来已经是一个巅峰之作了. 各方面性能都比之前的4.4.x强了很多. 上面所说的游戏逻辑, 我觉得php应该足以胜任了吧?
两张帖子回复都一样. 看了一个就别去另外那边了. |
|