Из того, что я могу собрать, у вас есть очередь RabbitMQ, способ добавлять элементы в эту очередь, что-то для обработки элементов, которые добавляются в эту очередь, и вы в основном хотите уведомить браузер о прогрессе в этой очереди .
Есть два основных способа, которыми вы могли бы подойти к этому:
В качестве последнего действия обработчика очереди опубликуйте элемент / сообщение через шину обмена сообщениями в экземпляре em-websocket, который прослушивает эту шину сообщений.
Если вы можете добавлять функции в RabbitMQ, то вы можете выполнить публикацию из RabbitMQ, как обработанный хук или что-то в этом роде. (обратите внимание, я не знаю достаточно о RabbitMQ, чтобы сказать, что вы определенно можете это сделать).
В качестве альтернативы # 1, вы можете использовать Pusher.com или аналогичный сервис для разгрузки обработки соединений WebSocket. Затем из обработчика очереди вы выполняете вызов публикации для API этих служб.
В случае использования Pusher, если вы публикуете канал / сокет, который больше не существует (имеет какие-либо соединения), то сообщение просто будет отброшено.
Надеюсь, это поможет. Дайте мне знать, если вам нужна помощь в настройке базового сервера em-websocket.