0

Während der Migration zu Play 2.5 versuche ich, die neue WebSocket-Funktionalität wie beschrieben zu implementieren here (Umgang mit WebSockets mit Akteuren). In Play 2.5.4 gibt es kein play.libs.streams.ActorFlow (wie im Beispiel gezeigt), sondern nur play.api.libs.streams.ActorFlow. Aber wenn ich schreibe diesen Code:Abspielen 2.5 ActorFlow: kann nicht von Flow konvertiert werden <String, String, # 1-of?> In Flow <String, String,?>

public class MyController extends Controller { 
    private final ActorSystem actorSystem; 
    private final Materializer materializer; 

    @Inject 
    public MyController(ActorSystem actorSystem, Materializer materializer) { 
     this.actorSystem = actorSystem; 
     this.materializer = materializer; 
    } 

    public WebSocket socket() { 
     return WebSocket.Text.accept(request -> 
       return ActorFlow.<String, String>actorRef(MyWebSocketActor::props, 256, OverflowStrategy.dropHead(), 
        actorSystem, materializer 
       ) 
     ); 
    } 
} 

Der Compiler gibt mir eine Fehlermeldung:

Type mismatch: cannot convert from Flow <String,String,capture#1-of ?> to Flow<String,String,?>

Kann jemand bitte erklären Sie mir, wie dieses Konzept umzusetzen in 2.5? Warum bekomme ich diesen Fehler?

Antwort

0

Ich habe gerade das gleiche Problem mit Play 2.5.12 getroffen. Das Problem scheint zu sein, dass ActorFlow in Play 2.5.x noch nicht richtig für Java implementiert ist. (Und genau deshalb hatten Sie play.api.libs.streams.ActorFlow von der Scala-Seite).

Der richtige Java-Code scheint in Play 2.6.x zu sein. https://github.com/playframework/playframework/blob/master/framework/src/play-streams/src/main/java/play/libs/streams/ActorFlow.java

Für jetzt, denke ich, ist die einfache Lösung, mit (dem entzogenen) LegacyWebsocket zu bleiben, bis 2.6.x stabil ist.

(Ich weiß, das ist eine alte Frage, aber es ist immer noch relevant).

+0

Danke für die Antwort trotzdem :) Allerdings habe ich den Weg gefunden, neue WebSocket-Implementierung in Play 2.5 zu nutzen, basierend auf dem, was hier geschrieben ist: http://nuah.livejournal.com/315561.html – sleb82