基于 Quercus 的手游项目终于上线了

经过半年的开发,我们第一款手游戏终于开发完毕,架构使用了 netty + Quercus 实现用 php 通过 websocket 与客户端通信。

项目上线近一个月,基本稳定。而且不存在性能方面问题,之前在内网测试,pc 机 4G 内存,在线 1000 人,没有卡动感觉。 这个数

字足以满足我们的需求, 想用 Quercus 大胆的用吧,到 4.0.39 应该会更完美,希望支持 Quercus 的多起来,与 hhvm 的火爆程度

真是是没法比。

quercus 4.0.38 发布

修正了不少bug 真是越来越完善了,赞一个

quercus: empty() needs to call ArrayAccess->offsetExists() (#5612, rep by G. Krall)
quercus: session_status() not implemented (#5609, rep by G. Krall)
quercus: self doesn’t work inside a namespace (#5608, G. Krall)
quercus: ReflectionParameter->getClass() not implemented (#5607, rep by G. Krall)
quercus: IllegalArgumentException vfs: not found on JBoss (#5606, rep by G. Krall)
quercus: ReflectionFunction does not work for closures (#5605, rep by G. Krall)
quercus: Xml reader is not working (#5603, rep by qumo)
quercus: call_user_func() needs to call __invoke (#5601, rep by G. Krall)
quercus: instanceof Closure returns false for closures (#5600, rep by G. Krall)
quercus: QuercusCompiledScript.eval() needs to return the Value object (#5589, rep by S. Guo)
quercus: ScriptEngineManager.getEngineByName(“php”) returns Quercus with unicode.semantics=off (#5588, rep by S. Guo)

php实现websocket手游架构设想

众所周知 php 的开发效率确实块。但在 socket 这块一直没有什么大的发展,设想用 两种方案用 php 实现 websocket game 开发

方案1 netty+quercus+php

方案2 Swoole + php

两种方案感觉都可行,quercus 近期更新力度很大,已经解决 mysql 乱码问题。 php 转成 java 测试性能确实不错

Swoole 是近期关注比较多的了,php 原生实现,作者更新速度很快,但缺少实际项目案例。

两种方案选择了 quercus ,感觉应该更稳定一些,实践中,期待项目上线测试效果