Здравствуйте. Написал логику взаимодействия моего веб сервера на php c CRM системой и сторонними сервисами. В виду того, что данные сторонние сервисы стал открывать api вебсокетов, особенно это важно в телефонии, то встал вопрос перейти на сокеты. Но вот вопрос, что выбрать. Мне нужно слушать сокет каналы сервисов(например, сервис телефонии) получать оттуда события и отдавать эти события подписчикам, которые находятся в CRM.
Что в данных условиях лучше выбрать если логику на php переписывать не планирую. Если можно, подскажите как именно будет организовываться транспорт в 2 стороны. Читал про elephant.io , про ZeroMQ... Что выбрать... Спасибо за ответы.
P.S. получается такая цепочка:
Пользователь crm <--> сервер с логикой <-- сторонние сервисы , где <-->/<-- = вебсокет
Поскольку ваш проект уже написан на PHP, используйте Ratchet и ZeroMQ. KISS ;-)
Если нужно совсем enterprise, смотрите в сторону RabbitMQ.
Кстати, коннекторы к очередям могут быть на разных языках написаны, например ультрабыстрые сокеты на Go-lang/Erlang для работы с телефонией и тусня в CRM на PHP.
Насколько мне известно, знаменитый vk.com использует php для выдачи страниц и node.js для онлайн-сервисов. Эти две технологии прекрасно работают вместе, и то что мне на php давалось "потом и кровью", на node.js делается в два счёта - он и предназначен специально для таких задач.
https://nodejs.org/dist/latest-v7.x/docs/api/http.html
Получение ответа от стороннего сервиса всегда одинаково, не важно на чём он работает. Приходит запрос - подключаемся к стороннему - ожидаем ответ - выдаём ответ пользователю. Возможно, не понял вопрос.
Точно, мы ведь изначально говорили о socket.io... нет, тут скорее всего придётся использовать более низкоуровневые сокеты. Но суть та же - создаём подключение, ожидаем соединение, обмениваемся сообщениями.