gpt4 book ai didi

php - 如何在 PHP 中实现高性能异步套接字服务器应用程序?

转载 作者:可可西里 更新时间:2023-11-01 12:39:32 26 4
gpt4 key购买 nike

使用 nodejs,创建非阻塞 TCP 服务器非常容易。来自 nodejs.org 的示例:

var net = require('net');
var server = net.createServer(function (socket) {
socket.write("Echo server\r\n");
socket.pipe(socket);
});
server.listen(1337, "127.0.0.1")

nodejs 为你处理 select()-/poll()-/epoll() 的东西,套接字例程和主循环是用 C 语言实现的,所以它非常快速和高效。

nodejs 很棒,但我想用 PHP 实现一个高性能的 TCP 套接字服务器,因为我是一个 PHP 人:)

所以,我已经尝试过的一件事是用 PHP 实现套接字例程,使用 socket_create_listensocket_acceptsocket_select 等,以及PHP 中的主循环。这工作得很好,但我认为它不是很有效,因为我必须使用 socket_select 在内部调用 C 函数 select,但是 epoll 我认为会更好(我使用的是 Linux),但是 epoll 不能用作 PHP 函数。(phpsocketdaemonphpmio 是我发现的两个为您实现套接字例程的项目)。

是否可以用 nodejs 的方式来做?我正在考虑一个 PHP 模块,它在 C 中实现循环和套接字例程,并为事件调用 PHP 回调函数(onreadonerror..)。还是不值得付出努力?

最佳答案

我觉得这是典型的“手里只有锤子,看什么都像钉子”的情况。

正如您自己已经发现的那样,php 不是完成这项工作的正确工具。无论如何,您可能会找到一种方法来做到这一点,但它很可能会很困惑。

因此,请使用正确的工具来完成工作。您不会用锤子将螺钉拧入墙壁,对吗?

关于php - 如何在 PHP 中实现高性能异步套接字服务器应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8551819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com