我正在尝试在一系列TCP端口(1000到2000)上启动ReactPHP TCP套接字。所有端口都是打开的,我可以看到在使用telnet进行测试时建立的连接,但是套接字从不触发connection.on('data' ...)
事件。不能使用任何类型的端口转发。
使用较小的端口范围完全是 255 而不是 1000 时,所有功能都可以正常工作。
<?php
require 'vendor/autoload.php';
$loop = React\EventLoop\Factory::create();
for ($i = 1000; $i < 2000; $i++) {
$socket[$i] = new React\Socket\Server('127.0.0.1:' . $i, $loop);
$socket[$i]->on('connection', function (React\Socket\ConnectionInterface $connection) {
echo "connection happened";
$connection->write("Hello " . $connection->getRemoteAddress() . "!\n"); // this part works
$connection->on('data', function ($data) use ($connection) {
echo $data; // for some reason this never fires
});
});
}
$loop->run();