IBM Worklight: расширение кода Java на стороне сервера

Могу ли я расширить код Java на стороне сервера в Worklight? Например, есть класс с именем JavaScriptIntegrationLibraryImplementation под com.worklight.integration.js. Внутри этого класса есть метод broadcastNotification, и я хотел бы переопределить этот метод. Возможно ли это сделать?

EDIT
Причина в том, что: когда я делаю подписку на стороне клиента с полем параметров (например, добавить customType: A), я хотел бы получить список устройств, на которые была подписана этот источник события. Основываясь на поле параметра в deviceSubscrpition, я хотел бы иметь некоторую бизнес-логику, чтобы определить, кому отправлять уведомление. Например, я отправлю сообщение только тому пользователю, у которого «customType=A».

Однако в Worklight нет API, который мог бы получить список устройств, что заставляет меня сначала получить список. Затем выполните логику в JavaScript и вызовите WL.Server.notifyDevice..

Поэтому я хотел бы проверить, есть ли какой-либо метод для получения списка устройств (через API/адаптер, который подключается к БД ), которые подписались на источник событий.

Спасибо.


person red23jordan    schedule 17.04.2013    source источник


Ответы (2)


Эта часть Worklight не расширяема. Вы можете попробовать переопределить этот метод, как вы говорите, но обратите внимание, что он не поддерживается, и мы не можем помочь в этом случае.

Изменить

Теперь, когда ясно, чего вы пытаетесь достичь... то, что вы ищете, в настоящее время недоступно. Я открою для него запрос функции, и в какой-то момент он будет оценен (если вы являетесь клиентом IBM, я предлагаю связаться с вашим контактным лицом...).

Мое предложение (несколько хакерское по форме): возможно, вы могли бы использовать несколько источников событий, где каждый источник событий представляет версию iOS. На стороне клиента, после инициализации приложения, вы можете получить версию iOS и использовать ее для регистрации в правильном источнике событий (это был бы очень общий код для повторного использования). В случае выхода новой версии iOS (вы, скорее всего, будете знать об этом заранее), вы просто добавляете этот источник события в код адаптера и повторно развертываете адаптер. Пользователи новой версии iOS по-прежнему могут зарегистрироваться для получения уведомлений, потому что вы получаете версию iOS при инициализации и используете эту информацию для регистрации в правильном источнике событий...

Чтобы повторить:

Адаптер содержит: ES_iOS5 ES_iOS6

Клиент:

  • получает версию iOS, сохраняет ее в некоторой переменной.
  • регистрируется в источнике события, где имя источника события ES_${iOSVersion}
  • если выпущена новая версия iOS, просто создайте новый источник событий и повторно разверните адаптер; клиент уже готов справиться с этим.
person Idan Adar    schedule 17.04.2013
comment
Привет, Идан, я отредактировал свой вопрос для сценария. У вас есть предложения по этому поводу? Спасибо! - person red23jordan; 17.04.2013
comment
Привет, Идан, например, я хотел бы отправить уведомление группе пользователей с определенной версией iOS. То, что я пытаюсь сделать, это вставить номер версии в поле «опция». После этого выполните бизнес-логику в серверном Javascript, чтобы выбрать, какое устройство будет отправлено. В этом случае, поскольку версия iOS является динамической (позже может быть iOS7), я не могу заранее определить источник события... Поэтому я хотел бы проверить, есть ли какой-либо метод для получения списка устройств (через API/ Адаптер, который подключается к БД), которые подписались на источник событий. Спасибо. - person red23jordan; 17.04.2013
comment
Спасибо за ваше предложение. Во всяком случае, вы предлагаете получить список информации об устройстве из базы данных push-уведомлений Worklight? Потому что я хотел бы отображать информацию о подписке на внешней веб-странице. - person red23jordan; 18.04.2013

@Red23jordon,

у меня был похожий случай, я создал настраиваемую таблицу, в которой во время подписки я сохранял идентификатор пользователя и тип события в настраиваемой таблице. и когда пользователь отменяет подписку, я также удаляю данные из пользовательской таблицы.

Для отправки push-уведомлений пользователям, подписанным на определенный «четный тип», я просматриваю настраиваемую таблицу, чтобы получить список идентификаторов пользователей, подписанных на определенный тип события, а затем я перехожу к таблицам пользователей/устройств уведомлений, извлекаю соответствующие устройства и отправляю Push.

Надеюсь, это поможет вам.

Спасибо

person AAhad    schedule 30.05.2013