2016-02-25 33 views
2

我使用akka http 2.0.3的应用程序,并希望使用网络套接字。我希望能够将消息从服​​务器推送到客户端,而不必先收到消息。所以,我在查看UpgradeToWebsocket特质,看起来像使用'handleMessagesWithSinkSource'将是正确的。现在,为了推送消息,我希望将一个actor连接到传递给'handleMessagesWithSinkSource'方法的源。然而,当使用'Source.actorRef'方法时,似乎只有在流程运行时才会生成actor,这将在'handleMessagesWithSinkSource'方法内部生成。通过网络套接字与akka http推送邮件

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

回答

3

发现,有可能将一个ActorPublisher传递到源:

Source.fromPublisher(ActorPublisher(myActorPublisher) 

这种方式,发布者首先实例化并然后被传递到源,然后将其传递到“handleMessagesWithSinkSource”