В настоящее время я работаю над проектом, в котором мы будем обмениваться данными между бытовым прибором (например, духовкой) со встроенным компьютером и мобильным устройством (телефоном). Вот краткий обзор настройки:
Существуют ли какие-либо фреймворки, которые поддерживают связь в реальном времени через Интернет и локальную сеть, публикацию-подписку и RPC и работают как на Java, так и на C#? У меня есть несколько хороших кандидатов, но я особенно не вижу возможности использовать общие протоколы для связи через Интернет и для связи по локальной сети (возможно ли это вообще?). Мой текущий шорт-лист состоит из (по порядку):
XMPP также выглядит многообещающим, но из того, что я видел, сообщество и документация/примеры не кажутся надежными, я также читал, что производительность с XMPP не совсем в реальном времени.
Итак, на самом деле это не ответ (больше информации), но это слишком длинное поле для комментариев.
Звучит как интересный проект! Я могу говорить только за XSockets, но я уверен, что кто-то другой заполнит пробелы для других технологий.
Поскольку XSockets имеет «межпротокольную» связь и позволяет использовать пользовательские протоколы в качестве плагинов, связь может осуществляться между любыми устройствами, поддерживающими TCP/IP.
Скоро будет выпущена версия 4.0, которая будет поддерживать как pub/sub, так и rpc. Существуют клиенты для .NETMF, .NET 2.0, 3.5, 4.0 и iOS + Android (Xamarin), но благодаря функции кросс-протокола вы можете подключать необработанные сокеты для общения с этими клиентами, если хотите.
Я запускаю сервер XSockets дома на Raspberry Pi, и к нему подключены Arduino и Netduinos, а также клиент iOS (плюс веб-сайт и консольное приложение). Это работает хорошо, хотя это просто для удовольствия, а не настоящий продукт. Я просто проверяю температуру и движение в своем доме в качестве доказательства концепции.
Чтобы перейти к вашему вопросу/проблеме... Я бы выбрал структуру реального времени, а не варианты MQ. Большинство вещей выше было бы довольно просто с хорошей структурой. Единственный вопрос - это локальная сеть. У меня нет опыта в этом, но это должно быть выполнимо, особенно если у вас есть сервер реального времени в локальной сети, который берет на себя управление, когда устройство возвращается домой.
В любом случае, звучит как забавный проект. Удачи!
w3therby
Уффе
Уффе