Для создания TCP соединения использую библиотеку WORKERMAN. Для неё же и рассмотрим пример.
use Workerman\Worker;
require_once './Workerman/Autoloader.php';
$tcp_worker = new Worker("tcp://127.0.0.1:8000");
$tcp_worker->count = 4;
$tcp_worker->onMessage = function($connection, $data) use ($tcp_worker)
{
// №1 Отправляем сообщение обратно отправителю
$connection->send($data);
// №2 Рассылаем сообщение всем клиентам
foreach ($tcp_worker->connections as $conn) {
$conn->send($data);
}
};
Worker::runAll();
Если 1й пример из события
onMessage работает безотказно то 2й почему то работает только локально (localhost) а на сервере возвращает сообщение отправителю и всё, остальные ничего не получают. Из за чего ? может header какой добавить или настройки подправить ? и локально и на сервере всё идентично. нету даже ssl соединения и используется тот же порт.
PS. тестирую командой
telnet на 2 разных устройствах