В настоящее время клиенты Android, iOS и настольного браузера обрабатывают PHP-бэкэнд (используя базу данных PostgreSQL на CentOS Linux) каждые несколько секунд.Легкий IPC для WebSocketListener в Jetty
Я хотел бы заменить опрос, используя автономный Jetty Websocket Server, чтобы уведомить клиентов о том, что новые данные доступны для загрузки на бэкэнд.
Так в обычае WebSocketListener
я аутентификации подключенных клиентов и хранить их в ConcurrentHashMap<String,Session>
:
public class MyListener implements WebSocketListener
{
private Session mSession;
@Override
public void onWebSocketConnect(Session session) {
mSession = session;
}
@Override
public void onWebSocketText(String message) {
if (mSession != null && mSession.isOpen()) {
// 1. validate client id and password
// 2. store client id and session into Map
}
}
Мой вопрос: Как уведомить подключенные (через WebSockets) клиентов?
I.e. в PHP-скриптах, я хотел бы запустить облегченную программу java -jar MyNotify.jar client-1234
, чтобы сервер Jetty автономный:
Эй, есть новые данные, доступные для
client-1234
в базе данных!Пожалуйста, отправьте это короткое сообщение через WebSockets по телефону
MyMap.get("client-1234").getRemote().sendString("hey", null);