我想知道 PHP 是否可以通过 TCP 端口充当服务器?1GB RAM 服务器可以处理多少个 IDLE 连接?PHP 能否接收到一个 TCP 端口的多个连接(就像 apache 在端口 80 上所做的那样?)
如果我有一个客户端连接到 PHP 打开的套接字,我该如何向它发送数据?(例如 a.php 正在监听 5000 端口,某个客户端已连接,稍后 b.php 需要向该客户端发送一些内容,那么推送消息?)
或者我应该改用UDP吗?
朋友,我的第一个建议是,即使 PHP 可以原生地做到这一点。PHP 不是实现 TCP 套接字服务器的最佳技术。原因是因为记住 php 对每个脚本都有 max_execution_time 并且使服务器永远运行将需要将此值设置为 0,这意味着永远。1gb ram 服务器可以处理的连接数量取决于每个 php 进程消耗多少 ram 和处理器。
但无论如何,如果您决定使用 php. 是的,您可以使用 php 构建一个异步 tcp 套接字服务器。
只需创建一个监听 5000 的主套接字(例如)。对于与此主套接字连接的每个客户端套接字,然后为每个传入连接创建一个具有随机空闲端口(由操作系统选择)的子套接字,您可以开始与子套接字交谈,同时释放主套接字以继续侦听另一个传入连接。