Занимаюсь системой для удаленного управления камерами. Не могу определиться с подходящим протоколом. На стороне камеры доступен TCP и HTTP. Сервер (Node JS) должен отправлять команды на камеры, а с камер получать уведомления и фото/видео.
Ориентируюсь на следующую схему: камера подключается к серверу по TCP сокету и получает отправляет/получает данные/команды по JSON-RPC. Для передачи файлов сервер отправляет соответствующую команду, в ответ на которую камера подключается к серверу по другому порту и отправляет необходимые файлы.
Все бы ничего, но это кажется каким-то велосипедостроением, к тому же не очень масштабируемым. Начал смотреть в сторону модного MQTT, нацеленного на использование в подобных девайсах. Но там возникают вопросы насчет удобства pubsub модели, а также передачи больших файлов. Все-таки MQTT (как и AMQP) вроде рассчитаны на довольно мелкие данные.