Хранить данные в ServerEndpoint
Я разрабатываю простое приложение с помощью WebSockets. На стороне клиента вы можете отправлять входные тексты, а на стороне сервера реализован класс Java с аннотацией ServerEndpoint. Здесь полученные входные тексты декодируются и отправляются на все открытые сессии.
Это работает, но я хочу сохранить каждое сообщение, полученное сервером, чтобы при подключении нового клиента (используя метод, аннотированный с помощью @OnOpen) он получал все сообщения, отправленные, пока он находился "в автономном режиме". Где я могу хранить эти сообщения без использования базы данных?
1 ответ
Решил это с помощью шаблона Singleton. Я создал класс Singleton, в котором хранится список List, который обновляется в методе onMessage. Затем в onOpen сохраненные сообщения отправляются клиенту, который только что открыл соединение с сокетом.