PHP подключается как клиент к веб-сокету NodeJS

#php #laravel #php-socket

#php #laravel #php-сокет

Вопрос:

Нужно, чтобы мое приложение laravel подключалось к серверу сокетов на базе nodejs. Функция должна передавать пользовательские заголовки для аутентификации, а также продолжать проверять соединение каждые 1 минуту, чтобы предотвратить отключение от сервера сокетов

Может кто-нибудь порекомендовать какие-нибудь хорошие библиотеки для использования для достижения вышеуказанной функциональности. Здесь PHP действует как клиент

Заранее спасибо

Комментарии:

1. С CURL помощью вы можете отправлять любые заголовки данные. И используйте Cron-job для пинга. Вы также можете запускать скрипты nodejs на PHP с помощью shell_exec()

2. Если вы добавите несколько примеров того, как вы подключаетесь сейчас, возможно, будет легче помочь.

3. Я использовал ElephanIO ( github.com/Wisembly/elephant.io ) для достижения этой цели, но, похоже, библиотека больше не поддерживается. Я бы предложил использовать redis pub / sub для запуска отправки из PHP в веб-сокет nodejs.

Ответ №1:

Спасибо за ваши предложения, в итоге я использовал клиент ratchet / pawl, который работает хорошо:

Пример:

 $headers = ['HEADER' => 'Value'];
$ip = '1.1.1.1';

RatchetClientconnect($ip,[],$headers)->then(function($conn) use ($payload) {
  $conn->on('message', function($msg) use ($conn) {
      $response = json_decode($msg, TRUE);
      var_dump($response);
      $conn->close();
  });

  $conn->send('Hello!');

  $conn->on('close', function ($code = null, $reason = null) use ($connector, $loop, $app) {
    echo "Connection closed ({$code} - {$reason})n";
  });
}, function ($e) {
    echo "Could not connect: {$e->getMessage()}n";
});