彗星与 php 套接字服务器?

Posted

技术标签:

【中文标题】彗星与 php 套接字服务器?【英文标题】:comet with php socket server? 【发布时间】:2010-01-13 06:08:42 【问题描述】:

我听说如果很多用户都在使用你的 comet 实现,那么 php 不能很好地扩展?是因为apache服务器还是php语言?

什么是套接字服务器,它能解决这个问题吗?

有人为很多用户设置了php comet服务器,可以提供一些建议吗?

【问题讨论】:

你读过这些吗? ***.com/search?q=php+comet 是的,每一行。但它仍然很不清楚。 【参考方案1】:

我了解到,如果很多用户都在使用您的 comet 实现,那么 php 无法很好地扩展?

在哪里?

关于扩展和编程语言的废话很多。

在 Comet 中使用 PHP 肯定有问题——但与并发无关,除了 Comet 不能很好地扩展(基于非评论 Web 的应用程序不受并发会话数量的限制,并且使用内存少)。

主要考虑的是内存管理:PHP 是为请求-回复类型的操作而设计的 - 在迭代之间可以清除所有数据。如果您在服务器中编写 OO 代码,那么您绝对应该考虑使用循环引用检查器。

什么是套接字服务器,它能解决这个问题吗?

呃……你不知道吗?套接字服务器是使用套接字进行通信的服务器的通用描述 - 例如。网络服务器、邮件服务器、文件服务器......

虽然可以用 PHP(或许多其他语言)实现套接字服务器,但它并不能解决 PHP 中的内存管理问题。

C.

【讨论】:

我已经使用 quercus 在 Glassfish 上实现了 php。你觉得这样能解决内存(一请求一进程)的问题吗? 怀疑 - 如果你能忍受这些缺点,那么 Java 垃圾收集更适合交互式进程(即不是传统的 http 应用程序),但问题在于 PHP 内存管理。让它继续告诉你它的内存使用情况。这完全取决于您如何在 PHP 代码中创建/销毁对象和数组。确保它定期报告内存使用情况。 C.

以上是关于彗星与 php 套接字服务器?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我们需要网络套接字?

PHP 套接字与流

如何将 HTTP 标头/正文与 PHP 套接字请求隔离开来

php彗星与栎

高流量站点NGINX与PHP-fpm配置优化

高流量站点NGINX与PHP-fpm配置优化