AllJoyn Тонкая отправка сигналов на все присоединенные сеансы

Я пытаюсь отправить сигнал об изменении значения во все сеансы, к которым подключено мое тонкое приложение alljoyn:

AJ_MarshalSignal(&Bus, &sig_out, SIGNAL_ STATECHANGED, NULL, 0, AJ_FLAG_GLOBAL_BROADCAST, 0);

Однако Клиенты (работающие на AJSCL) не могут получить Сигнал.

Но когда я отправляю его на определенный сеанс, используя:

AJ_MarshalSignal(&Bus, &sig_out, SIGNAL_ STATECHANGED, NULL, session_ID, AJ_FLAG_GLOBAL_BROADCAST, 0);

Клиент с указанным session_ID в состоянии получить это.

Есть ли в версии Thin Client какой-либо флаг, аналогичный

BusAttachment.SESSION_ID_ALL_HOSTED

Я не хочу отправлять его как сигнал без сеанса. Есть ли какой-нибудь другой способ, которым все присоединенные сеансы могут получить Сигнал?

1 ответ

Решение

Функциональность SESSION_ID_ALL_HOSTED не реализована в тонком клиенте. Вы должны реализовать логику для сеанса вещания для каждого подключенного клиента самостоятельно.

Если вы используете версию 15.09 и выше, кодовая база тонкого клиента вам в чем-то поможет: AJ_BusAttachment.sessions - это связанный список структур AJ_Session, где каждый AJ_Session описывает текущий сеанс. Если вы перебираете этот список и посылаете сигнал для каждого сеанса, где AJ_Session->host!= 0, у вас будет поведение, аналогичное SESSION_ID_ALL_HOSTED.

  • Получено из списка рассылки Allseen Alliance Core
Другие вопросы по тегам