akka http websocket connections に問題があります。handleMessagesWithSinkSource(sinkUsesActor , SFPTextMessage ) で websocket メッセージを処理します。sinkUsesActor はアクターを使用し、SFPTextMessage はアクターパブリッシャーからのソースです。ブラウザーを更新すると、接続を再確立しようとすると、次のエラーが表示されます。
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")
}
}