Scala 播放带有自定义错误代码的框架WebSocket拒绝连接
此Scala 播放带有自定义错误代码的框架WebSocket拒绝连接,scala,websocket,playframework,Scala,Websocket,Playframework,此CloseEvent是当用户没有有效的许可证或会话过期时,我从服务器返回的内容 def socket: WebSocket = { WebSocket.acceptOrResult[Message, Message] { implicit request: RequestHeader => serviceUserIdentity.getUserIdentity(request) map { case Some(userIdentityPlay) if
CloseEvent
是当用户没有有效的许可证或会话过期时,我从服务器返回的内容
def socket: WebSocket = {
WebSocket.acceptOrResult[Message, Message] { implicit request: RequestHeader =>
serviceUserIdentity.getUserIdentity(request) map {
case Some(userIdentityPlay) if userIdentityPlay.hasValidLicense =>
Right(
ActorFlow.actorRef(out =>
ActorWSServer.props(out)
)
)
case Some(_) =>
Left(Results(4403)) //invalid user
case None =>
Left(Results(4401)) //session expired
} recover {
case exception: Exception =>
Left(InternalServerError)
}
}
}
看起来Http代码(4403)被覆盖为1006
我期待的结果是:
CloseEvent {isTrusted: true, wasClean: false, code: 1006, reason: "", type: "close", …}
在WebSocket.accept中是否有实现此目的的方法?
或者使用play.api.http.websocket.CloseMessage解决问题
?基于此,我认为这可能是一个正在运行的bug,看起来1006永远不应该返回。基于此,我认为这可能是一个正在运行的bug,看起来1006永远不应该返回。
CloseEvent {isTrusted: true, wasClean: false, code: 4403, reason: "", type: "close", …}