【问题标题】:Pushing messages via web sockets with akka http使用 akka http 通过 Web 套接字推送消息
【发布时间】:2024-01-22 01:47:01
【问题描述】:

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

那么,我的问题是,如何将消息推送到 web-socket 通道,最好是通过演员?

【问题讨论】:

  • 可以使用Source.queue

标签: websocket akka akka-stream akka-http


【解决方案1】:

发现可以将 ActorPublisher 传递给 Source:

Source.fromPublisher(ActorPublisher(myActorPublisher)

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

【讨论】: