WebSocket请求获取请求头Sec-WebSocket-Protocol,以及正确返回响应

这篇具有很好参考价值的文章主要介绍了WebSocket请求获取请求头Sec-WebSocket-Protocol,以及正确返回响应。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当WebSocket请求获取请求头Sec-WebSocket-Protocol不为空时,需要返回给前端相同的响应,所以就需要处理

解决:在 WebSocketConfig 中新增 modifyHandshake方法,用来获取请求头和为返回响应赋值

sec-websocket-protocol,websocket,java

 

modifyHandshake方法

public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) {

    //获取请求头
     request.getHeaders().get("Sec-WebSocket-Protocol").get(0);

    //当Sec-WebSocket-Protocol请求头不为空时,需要返回给前端相同的响应
    response.getHeaders().put("Sec-WebSocket-Protocol",list);

    /**
    *获取请求头后的逻辑处理
    */

    super.modifyHandshake(sec, request, response);
}

关键点:需要在websocketserver的@ServerEndpoint注解中加上configurator = WebSocketConfig.class,也就是上面那个方法存在的配置文件中文章来源地址https://www.toymoban.com/news/detail-616653.html

@Component
@ServerEndpoint(value ="/webSocket/{userId}",encoders = { ServerEncoder.class },configurator = WebSocketConfig.class)
public class WebSocketServer {

    /**
     * 连接开始调用的方法
     */
    @OnOpen
    public void onOpen(Session session) throws Exception {}

    /**
     * 连接关闭调用的方法
     */
    @OnClose
    public void onClose(@PathParam(value = "userId") Integer userId,Session session) {}

}

到了这里,关于WebSocket请求获取请求头Sec-WebSocket-Protocol,以及正确返回响应的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# 通过 HttpWebRequest发送数据以及服务器通过Request请求获取数据

    C#中HttpWebRequest的用法详解 可参考: C#中HttpWebRequest的用法详解 C# HttpWebRequest详解 C# 服务器通过Request获取参数 可参考: C# WebService 接口 通过Request请求获取json参数 1、后台程序发送HTTP请求的Class,服务器端也要添加该类 2、服务端返回HTTP请求的数据class,客户端也要有 1、后台

    2024年02月06日
    浏览(43)
  • OpenAI ChatGPT API + FaskAPI SSE Stream 流式周转技术 以及前端Fetch 流式请求获取案例

    这篇文章当时写得比较匆忙,这里进行一下更深入的补充 SSE 技术不是什么新鲜东西,就是一个 HTTP 请求和响应,关键就是响应这个环节,原始的响应都是一次性的,普通的响应是这样的: Nginx 是一个静态服务器,所谓静态服务器,就是将一个静态文件按照大小不同情况选择

    2024年02月08日
    浏览(37)
  • 【请求报错:javax.net.ssl.SSLHandshakeException: No appropriate protocol】

    在请求服务时报错说SSL握手异常协议禁用啥的,而且我的连接数据库的url也加了useSSL=false 在网上查找了方法原因后得知是jdk的问题 修改 java.security  文件 Linux 默认路径 /usr/lib/jvm/jdk/jre/lib/security Windows默认路径 C:Program FilesJavajdkjrelibsecurity vi 进去删除jdk.tls.disabledAlgorithms

    2024年02月10日
    浏览(30)
  • Raydium被盗造成巨额损失,但Zebec Protocol以及$ZBC并未受影响

    在12月17日,Solana上最大的DEX Raydium 因木马攻击导致流动性资金池所有者帐户的私钥泄露,攻击者访问了资金池所有者帐户,然后能够调用withdraw pnl函数,该函数用于收集池中掉期所赚取的交易/协议费用。 而受影响的资金池包括 SOL-USDC、SOL-USDT、RAY-USDC、RAY-USDT、RAY-SOL、stSOL

    2024年02月02日
    浏览(52)
  • 使用 websocket 发送请求

    一、 二、 三、 WebSocket刷新断开原因、设计心跳机制防止自动断开连接问题请访问以下链接: WebSocket刷新断开原因、设计心跳机制防止自动断开连接_秦岭熊猫的博客-CSDN博客_websocket页面刷新会断开连接吗

    2024年02月11日
    浏览(31)
  • nginx请求转发webSocket

    原由 1.我有一个socket服务,用ip访问是成功的,但是老板说用这个不行,要用nginx请求转发,转发内网地址到某个域名 2.但是我改成了指定域名后失败, 因为我没有配置 nginx.conf  http的很简单 ,如下(--- 可跳过 ---) server {     listen 80;     server_name *.mynetwork.cn mynetwork.cn;     

    2024年02月01日
    浏览(28)
  • python 请求Websocket类型接口

    使用 create_connection 方法传入 WebSocket 的接口地址就可以和接口建立起连接,返回一个连接的客户端对象。 连接对象有一个 getstatus 方法,可以用来获取连接状态,如果连接成功了,获取到的状态码即为 101。 建立起连接之后,如果要发送请求参数,则可以使用连接对象的 sen

    2024年02月16日
    浏览(33)
  • jmeter使用之发送webSocket请求

    在工作中,我们经常需要进行接口测试,最近做了一个项目用的是websockert协议,接口测试使用jmeter进行。以下是我用jmeter发送twebSocket协议的操作步骤。 一、jmeter下载 访问jmeter官网 https://jmeter.apache.org/,点击左侧的“Download Releases”链接 下载所需版本的jmeter,我使用的是5.

    2024年04月17日
    浏览(27)
  • Springboot websocket前端无法访问到,Websocket因AOP代理 前端无法请求到

    在我后端springboot启动后,前端无法请求websocket请求连接到我们websocket服务器。 在我后端springboot启动后,前端可以请求到我们websocket服务器,并且进行交互。 出现的问题A 出现问题的代码: 问题出在没有告诉spring遇见wensocket协议该如何处理。 改正后的代码: 出现的的问题

    2024年03月27日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包