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

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

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

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


person maximus 69    schedule 26.10.2020    source источник
comment
С CURL вы можете отправлять любые заголовки + данные. И используйте Cron-job для пинга. Вы также можете запускать скрипты nodejs на PHP, используя shell_exec()   -  person Cyborg    schedule 26.10.2020
comment
Если вы добавите несколько примеров того, как вы подключаетесь сейчас, вам будет легче помочь.   -  person Cyborg    schedule 26.10.2020
comment
Для этого я использовал ElephanIO (github.com/Wisembly/elephant.io), но он кажется, что библиотека больше не обслуживается. Я предлагаю использовать redis pub / sub для запуска выброса из PHP в веб-сокет nodejs.   -  person Nurul Huda    schedule 26.10.2020


Ответы (1)


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

Пример:

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

\Ratchet\Client\connect($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";
});
person maximus 69    schedule 26.10.2020