seb*_*seb 8 php sockets asynchronous
使用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")
Run Code Online (Sandbox Code Playgroud)
nodejs为你处理select() - /poll() - /epoll()的东西,socket例程和主循环用C实现,所以它非常快速有效.
nodejs很棒,但我想在PHP中实现一个高性能的TCP套接字服务器,因为我是一个PHP人:)
所以,有一件事我已经尝试过,是落实在PHP中的socket例程,使用socket_create_listen,socket_accept,socket_select等,并在PHP主循环.这非常有效,但我认为它不是非常有效,因为我必须使用内部socket_select调用C函数select,但epoll我认为(我使用Linux)会更好,但epoll不能用作PHP函数.(phpsocketdaemon和phpmio是我发现的为你实现套接字例程的2个项目).
是否有可能以nodejs的方式做到这一点?我正在考虑一个在C中实现循环和套接字例程的PHP模块,并为事件(onread,onerror..)调用PHP回调函数.还是不值得努力?
我认为这是一个典型的“如果你只有一把锤子,那么一切看起来都像钉子”。
正如您自己已经发现的那样,php 不是适合这项工作的工具。无论如何,你也许可以找到一种方法来做到这一点,但很可能会很混乱。
因此,请使用适合工作的正确工具。您不会用锤子将螺丝钉入墙上,对吗?