1

我在使用 akka http websocket 连接时遇到问题。我使用 handleMessagesWithSinkSource(sinkUsesActor , SFPTextMessage ) 处理 websocket 消息。sinkUsesActor 使用一个演员,而 SFPTextMessage 是来自 actorpublisher 的来源。当我刷新浏览器并尝试重新建立连接时,错误提示:

java.lang.IllegalStateException: can not subscribe the same subscriber multiple times .

在这种情况下,如何使用来自 actorpublisher (SFPTextMessage) 的相同源?

def wsHandler: HttpRequest ⇒ HttpResponse = {
        case req: HttpRequest ⇒ req.header[UpgradeToWebsocket] match {
            case Some(upgrade) ⇒
                upgrade.handleMessagesWithSinkSource(sinkUsesActor , SFPTextMessage )
            case None ⇒ HttpResponse(400, entity = "Missing Upgrade header")
        }
    }
4

0 回答 0