2016-07-02 9 views
0

Ich bin neu in Scala, Play Framework und Akka. Ich habe Funktion definiert alsAufruf einer Methode im Spiel WebSocket in Scala

def socket = WebSocket.accept[String, String] { request => 
    ActorFlow.actorRef(out => MyWebSocketActor.props(out)) 
    } 

Das i von anderen Klasse aufrufen wollen .Ich bin nicht klar, wie diese Funktion nennen, wie, ich kann das nicht nennen von

objectName.socket(implict req:RequestHeader) 

ich arbeite in Spielen Sie 2.5.3, Scala 2.11.7 und Akka 2.4.7.

Edit: es mir Fehler gibt: '=>' expected, ')' found

+0

Warum würden Sie das Verfahren nennen wollen erreichen? Es soll in die routes-Datei Ihrer Anwendung gehen. – thwiegan

+0

Ich möchte es als eine API machen, so dass ich es von anderen neuen Projekten anrufen kann, um die Verbindung zu akzeptieren. –

Antwort

1

Ich bin noch nicht sicher, was ist der Nutzen, das wäre, aber ich werde versuchen, Ihre Frage zu beantworten.

Zuerst ist dies (objectName.socket(implict req:RequestHeader)) nicht, wie Sie eine Methode mit einem impliziten Parameter aufrufen (auch Sie haben dort einen Tippfehler implizit).

Aber wie Sie bereits richtig hingewiesen haben, benötigen Sie eine implizite RequestHeader, so dass Sie diese Methode nur im Kontext einer Controller aufrufen können.

def anotherControllerAction = objectName.socket

Das wäre im Grunde nur anotherControllerAction auf die Socket-Implementierung zeigen. Dann müssen Sie noch anotherControllerAction in Ihre Routes-Datei einfügen.

Sie könnten näher beschreiben wollen, was Sie wollen eigentlich