我正在使用akka http 2.0.3作为应用程序,并希望使用Web套接字。我希望能够将消息从服务器推送到客户端,而不必先收到消息。所以,我正在查看UpgradeToWebsocket特性,看起来使用'handleMessagesWithSinkSource'是正确的。现在,为了推送消息,我想让一个actor连接到一个传递给'handleMessagesWithSinkSource'方法的源。但是,当使用'Source.actorRef'方法时,似乎只在流运行时生成actor,这将在'handleMessagesWithSinkSource'方法中。
所以,我的问题是,如何将消息推送到Web套接字通道,最好是通过演员?
答案 0 :(得分:5)
发现可以将ActorPublisher传递给Source:
Source.fromPublisher(ActorPublisher(myActorPublisher)
这样,发布者首先被实例化,然后传递给Source,然后传递给' handleMessagesWithSinkSource'