首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP Socket Server vs node.js:网络聊天

PHP Socket Server vs node.js:网络聊天
EN

Stack Overflow用户
提问于 2011-01-01 12:39:52
回答 1查看 21K关注 0票数 19

我想使用长时间持有的HTTP请求(Comet),ajax和websockets (取决于所使用的浏览器)来编写websockets。Userdatabase在mysql中。聊天是用PHP编写的,也许聊天流本身也可以用javascript (node.js)编写:

我不想启动每个用户的php进程,因为没有好的方法来发送这些php孩子之间的聊天消息。因此,我考虑用PHP或node.js编写自己的socket服务器,它应该能够处理超过1000个连接(聊天用户)。作为一个纯粹的web开发人员(php),我不太熟悉套接字,因为我通常让web服务器关心连接。聊天消息不会保存在磁盘上,也不会保存在mysql中,而是以数组或对象的形式保存在RAM中,以获得最佳速度。

据我所知,没有办法在单个php进程(套接字服务器)中同时处理多个连接,但是您可以接受大量套接字连接,并在循环中连续处理它们(读和写;传入消息->写到所有套接字连接)。问题是,在大约1000个用户的情况下,很可能会有延迟,mysql操作可能会减慢整个过程,从而影响所有用户。

我的问题是: node.js能否处理性能更好的socket服务器?Node.js是基于事件的,但我不确定它是否可以同时处理多个事件(这不需要多线程吗?)或者如果只有一个事件队列。有了事件队列,就像php:一个接一个地处理用户。

我也可以为每个聊天室(更少的用户)创建一个php进程,但是afaik有单线程的IRC服务器,它也能够处理成千上万的用户。(用c++或其他语言写的)所以也许用php也是可能的。

我更喜欢PHP而不是Node.js,因为这样的话,这个项目将是纯php的,而不是混合的编程语言。但是,如果Node可以同时处理连接,我可能会选择它。

EN

回答 1

Stack Overflow用户

发布于 2011-01-01 22:18:04

我回答的另一个主题可以帮助您并轻松扩展到您的需求=> How to use redis PUBLISH/SUBSCRIBE with nodejs to notify clients when data values change?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4573186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档