我目前正在开发一个将使用websockets进行客户端 - 服务器通信的PHP应用程序。我听说过很多次PHP不应该用于服务器应用程序,因为它缺少线程机制,内存管理(循环引用)或不方便的套接字库。带有PHP的Websocket服务器
到目前为止,一切工作都很好。我使用phpws作为websocket库和Doctrine DBAL来访问不同的数据库系统; PHP是5.3.8版本。服务器应该最多为30个客户端提供服务。然而,特别是在最近几天,我阅读了几篇文章,指出PHP对于长时间运行的应用程序无效。
现在我不知道是否应继续在PHP中使用websockets或重新构建整个serverside应用程序。我用Socket.IO尝试过Python,但我没有得到我期望的结果。
我想我有以下选择:
- 保持一切,因为它是。
- 使应用程序将Ajax与Socket.IO结合使用 - 例如运行一个服务器端脚本,在数据提交给服务器时调用客户端的ajax调用。
最后一点听起来很有趣,虽然它需要一些工作..会是服务器一次执行所有客户端请求的问题吗?
你会推荐什么? PHP的内存管理问题(我每次客户端发送数据到服务器时都使用gc_collect)仍然有效吗?除了显而易见的原因(没有线程,...)之外,还有其他原因不使用PHP作为服务器?
所以你问你是否应该放弃你目前的工作设计?像这样的问题在这里并不真正有效,你将不得不决定自己编码。你知道哪些其他服务器端语言?发布你的python代码,如果你决定重写你的代码,有人可以帮你找到问题。 – xthexder 2012-08-17 13:36:00