Я пытался использовать Java Observer и Observable в многопользовательском приложении XPages, но я сталкиваюсь с конфликтами идентичности. Я объясню.
Скажем, A и B имеют одинаковое представление на своих экранах, список документов с полями Readers. Мы хотим максимально синхронизировать эти экраны. Если A что-то меняет, B может получать обновления, в зависимости от его прав и ролей. Мы достигли этого с помощью WebSockets, но я хочу посмотреть, есть ли лучший способ, то есть без отправки клиенту сообщения, говорящего ему о повторном получении экрана.
Используя механизм Observer, B может наблюдать изменения и pu sh измененный экран для пользователя. Сложность в том, что если я вызываю notifyObservers как пользователя A и прохожу все наблюдаемые, A будет выполнять метод Observer.update()
, а не B.
Я также подумал об использовании Timer- как решение, но я, вероятно, в конечном итоге столкнулся бы с такими же конфликтами.
Вопрос: есть ли какой-либо способ, которым я могу правильно переключать сеансы в XPages? Или я должен ждать публикации / подписки на сервере XPages?