@UntitledNikname

Как отправить сообщение всем клиентам (tcp://workerman)?

Для создания 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 разных устройствах
  • Вопрос задан
  • 717 просмотров
Решения вопроса 1
@dimonov1
а вот так сделать Вы пробовали? создать массив и складывать в него все соединения по имени пользователя, например, вместо обращения к $tcp_worker->connections https://ru.stackoverflow.com/questions/850695/%D0%...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект
10 мая 2024, в 23:33
2500 руб./за проект