Scala: Server-Gesendete Ereignisse empfangen

8

Einrichtung:

Ein Projekt, an dem ich gerade arbeite, hat einen Pub / Sub-Server mit einer HTTP-Schnittstelle. Das Abonnement funktioniert, indem Server-send-Ereignisse akzeptiert werden.

%Vor%

wird immer dann gepuffert, wenn eine Nachricht an die angegebene URL des Themas veröffentlicht wird

%Vor%

Problem:

Ich habe ein Scala-Projekt, das diesen Pub / Sub-Server abonnieren muss. Das Spiel! Framework kann dies mit PlayWS mit Enumeratee + Iteratee umgehen. Leider erfordert die PlayWS-Bibliothek, dass ein Play! Anwendung ist im Umfang und ich verwende nicht Play. Gibt es eine Bibliothek (mit minimalen Abhängigkeiten) die ich benutzen kann, womit ich Server-Sent-Events akzeptieren kann? Ich brauche mindestens ein Arbeitsbeispiel, um loszulegen.

Ich habe eine Vorliebe für Scala-Bibliotheken, aber ich bin bereit, eine Java-Lösung zu akzeptieren, wenn ich muss.

    
Jake Greene 16.05.2014, 19:22
quelle

3 Antworten

3

Sie haben mehrere Möglichkeiten:

In Play 2.3 ist die WS-Bibliothek jetzt eine separate Bibliothek , sodass das helfen sollte. RC2 ist bereits verfügbar

Alternativ könnten Sie sich auf Play 2.x verlassen und ein StaticApplication ähnlich wie:

verwenden %Vor%

Dies wird im Wesentlichen eine Play-Anwendung bootstrappen, und von dort aus können Sie die WS -Bibliothek wie gewohnt

verwenden     
Manuel Bernhardt 26.05.2014, 10:13
quelle
4

Ich habe die Antwort von Manuel Bernhardt akzeptiert, weil sie mich in die richtige Richtung geführt hat, aber ich finde, dass ein vollständiges Beispiel für jeden anderen wichtig ist, der dieses Problem hat.

Ich habe meine build.sbt-Datei aktualisiert, um PlayWS 2.3 und die Iteratees-Bibliothek einzuschließen.

%Vor%

Der WS-Singleton benötigt eine implizite Play-Anwendung, die verwendet werden soll (etwas, das ich nicht habe oder möchte), stattdessen muss ich meinen eigenen Client erstellen

%Vor%

Ich erstelle dann meinen Iteratee, damit ich meine Server-send-Ereignisse verarbeiten kann.

%Vor%

und schließlich den Server abonnieren

%Vor%

Wenn jetzt ein Ereignis gesendet wird

%Vor%

Meine Scala-Anwendung druckt das empfangene Ereignis

%Vor%     
Jake Greene 01.06.2014 02:00
quelle
2

Mir sind keine anderen Scala-Bibliotheken bekannt, die einen Server-Client für gesendete Ereignisse implementieren, aber das Jersey-Projekt hat eine Java-Bibliothek für Server Sent Events-Clients (sowie Server). Die API scheint nicht sehr ausführlich zu sein und scheint so zu sein, als könnte sie in etwas Code eingepackt werden, um idiomatisch in Scala zu passen.

    
DCKing 26.05.2014 09:38
quelle