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