Динамические каналы с Android и MQTT

Я документирую по одной теме, в которой я запутался. Я использую MQTT с Android. Я могу успешно регистрировать клиентов и отправлять сообщения в статические каналы. Я создал два канала, и подписал клиента на канал, а другого на другой канал. Каждый канал получает правильные сообщения. Очень доволен этим.

Теперь я пытаюсь иметь динамические каналы, чтобы знать, какой у каждого клиента идентификатор и какой канал он использует. Я не понимаю, как это сделать. Когда я «регистрирую» клиента у брокера mosquitto, я могу подписаться на «фальшивый» канал (я правильно понял, что брокер создает этот канал, если он не существует, верно?), но как я могу узнать, какой клиент слушает какой канал? Спасибо за любые идеи.


person Gabriela Radu    schedule 07.01.2013    source источник


Ответы (1)


Просто чтобы немного прояснить ситуацию - MQTT на самом деле не имеет концепции статических или динамических каналов. Если вы публикуете тему или подписываетесь на нее, или если для этой темы существует сохраненное сообщение, то оно существует, в противном случае — нет.

Протокол не предоставляет никаких средств для определения того, какие клиенты слушают какие темы. Однако вы можете реализовать это на уровне приложения. Определить, подключен клиент или нет, можно с помощью описанного здесь механизма присутствия: http://mqtt.org/wiki/doku.php/presence, и вы сможете сделать что-то подобное, чтобы определить, какие клиенты подписываются на какие темы.

person ralight    schedule 08.01.2013