У меня есть конечная точка, которая публикует события, я хочу, чтобы мой php API подписывался на события и вызывал ответы. Является ли это возможным? Я знаю, что в nodejs я могу использовать библиотеку Eventsource для подписки на конечную точку. Что эквивалентно в PHP?
SSE — это хороший простой текстовый протокол, поэтому я бы использовал либо функции сокетов PHP, либо функции curl. Инструмент командной строки curl — отличный способ проверить канал SSE. Я думаю, вам может понадобиться curl_multi_select()
а также curl_multi_getcontent()
функции, даже если просто выборка из одного источника данных. (Если вы используете низкоуровневые функции сокетов PHP напрямую, вам потребуется поддержка чанков.)
В качестве альтернативы библиотека Guzzle может быть библиотекой более высокого уровня. Я могу видеть в документации есть опция потока: http://docs.guzzlephp.org/en/latest/request-options.html#stream Я не пробовал этого, поэтому мне было бы интересно узнать, хорошо ли это работает для вас.
Других решений пока нет …