Android, iOS und Desktop-Browser-Clients suchen derzeit alle paar Sekunden ein PHP-Backend (mit PostgreSQL-Datenbank auf CentOS Linux).Leichter IPC zu WebSocketListener in Jetty
Ich möchte die Abfrage durch die Verwendung von Standalone Jetty Websocket Server ersetzen, um Kunden zu benachrichtigen, dass neue Daten zur Abholung am Backend zur Verfügung stehen.
So in der benutzerdefinierten WebSocketListener
I verbundenen Clients authentifizieren und speichern sie in einem 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
}
}
Meine Frage: Wie die verbunden benachrichtigen (über WebSockets) Kunden?
I.e. in dem PHP-Skripte würde Ich mag ein leichtes Programm auszuführen java -jar MyNotify.jar client-1234
den Jetty eigenständigen Server zu sagen:
Hey, neue Daten dort für die
client-1234
in der Datenbank verfügbar ist!Bitte eine kurze Nachricht von
MyMap.get("client-1234").getRemote().sendString("hey", null);