使用akka http通过Web套接字推送消息

时间:2016-02-25 17:32:57

标签: websocket akka akka-stream akka-http

我正在使用akka http 2.0.3作为应用程序,并希望使用Web套接字。我希望能够将消息从服​​务器推送到客户端,而不必先收到消息。所以,我正在查看UpgradeToWebsocket特性,看起来使用'handleMessagesWithSinkSource'是正确的。现在,为了推送消息,我想让一个actor连接到一个传递给'handleMessagesWithSinkSource'方法的源。但是,当使用'Source.actorRef'方法时,似乎只在流运行时生成actor,这将在'handleMessagesWithSinkSource'方法中。

所以,我的问题是,如何将消息推送到Web套接字通道,最好是通过演员?

1 个答案:

答案 0 :(得分:5)

发现可以将ActorPublisher传递给Source:

Source.fromPublisher(ActorPublisher(myActorPublisher)

这样,发布者首先被实例化,然后传递给Source,然后传递给' handleMessagesWithSinkSource'