Я пытаюсь запустить ReactPHP TCP-сокеты на диапазоне TCP-портов (от 1000 до 2000). Все порты открыты, и я вижу, что соединение установлено во время тестирования с использованием 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();