【发布时间】:2023-03-25 20:08:01
【问题描述】:
升级到 web socket 是在 play 框架中抽象出来的。如何手动实现?
我使用 play 框架创建了一个 Web 套接字应用程序。 我可以在 Web 套接字客户端和服务器(我创建的)之间建立连接 但是升级到 web socket 已经被 play-framework 抽象出来了。
def chatSystem(): WebSocket = WebSocket.acceptOrResult[String, String] { request =>
Future.successful{
AuthenticationService.doBasicAuthentication(request.headers) match {
case Results.Ok => Right(ActorFlow.actorRef { out => ChatServiceActor.props(out) })
case _ => Left(Unauthorized)
}
}
}
URL : ws://localhost:9000/chatSystem/test123
在建立连接之前我需要做以下事情,
如果 Websocket-server 无法识别 URL 路径中的 userId,它应该发送一个状态为 404 的 HTTP 响应并中止 WebSocket 连接
如果 Websocket-server 不同意使用客户端提供的子协议之一,它必须完成 Web Socket 握手并返回不带 Sec-WebSocket-Protocol 标头的响应,然后立即关闭 WebSocket 连接。
我不确定如何手动实现逻辑,以便向客户端发送升级响应,然后建立 Web 套接字 连接。
【问题讨论】:
标签: scala websocket playframework