@Galdar
Web, JS, PHP, NGINX, Linux

Как перенаправить сообщение другому пользователю в workerman?

Читаю документацию не могу понять, на русском толком ни чего не нашёл. Хочу чтобы вводимый текст на одной страницы моментально отображался на другой, начал реализовывать используя workerman, но не могу допереть, как отправить его на другую страницу авторизованному пользователю!

Запись текста и отправка на сервер на странице_1
let ws = new WebSocket('ws://192.168.2.163:1000');
        var text = $('#text').val();
        ws.onopen = () => {
            ws.send(text);
        };


Вот как тут правильно будет указать передачу текста не обратно на страницу_1, а на уже новую страницу_2?
Прием текста на сервере
require_once __DIR__ . '/vendor/autoload.php';
  use Workerman\Worker;
  
  $ws_worker = new Worker("websocket://192.168.2.163:1000");
  $ws_worker->count = 4;
  
  $ws_worker->onMessage=function($connection,$data){
    $connection->send($data);
  };
  
  Worker::runAll();
Вывод в консоль текста со странице_1 на страницу_2
let ws = new WebSocket('ws://192.168.2.163:1000');
   
        ws.addEventListener('message', (event) => {
            console.log('Message from Server: '+event.data);
        });
workerman использую только для трансляции текста, не более. База с сохраненными сообщениями, регистрация клиентов все самописное и рабочее.

Вопрос в том чтобы прикрутить трансляцию текста пользователя до нажатия кнопки отправить, получается другой пользователь будет видеть как печатается текст. Оно должно работать не в две стороны, а только в одну от клиента к менеджеру
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
$ws_worker->onMessage = function($connection, $data) {
  foreach ($ws_worker->connections as $conn) {
    if ($conn != $connection) {
      $conn->send($data);
    }
  }
};
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы