websocket如何设置header

博客介绍了WebSocket请求时处理请求头并给前端响应的方法。需创建配置类继承ServerEndpointConfig.Configurator,重写modifyHandshake方法获取请求头并赋值响应,在@ServerEndpoint注解上添加配置信息,如此便可获取header并给前端响应。

websocket请求的时候要获取请求头而且需要给前端相同的相应,所以需要处理。这里记录一下。

创建一个配置类,并且继承ServerEndpointConfig.Configurator

重写modifyHandshake方法,获取请求头和反应相应赋值。

 在@ServerEndpoint注解上加上configurator=WebSocketConfig.class 也就是上面配置的配置信息

eg:


@Component
@ServerEndpoint(value ="/webSocket/{username}",encoders = { ServerEncoder.class },configurator = WebSocketConfig.class)
public class WebSocketServer {
 
    /**
     * 连接开始调用的方法
     */
    @OnOpen
    public void onOpen(Session session) throws Exception {}
 
    /**
     * 连接关闭调用的方法
     */
    @OnClose
    public void onClose(@PathParam(value = "username") Integer userId,Session session) {}

这样就可以获取到header并且可以给前端响应。

 

WebSocket 是一种基于 TCP 的协议,用于在客户端和服务器之间进行全双工实时通信。在 WebSocket 连接建立过程中,可以设置请求头来传递额外的信息,以实现自定义功能和提供安全性。 首先,需要在客户端建立 WebSocket 连接时设置请求头。可以使用 JavaScript 中的 WebSocket 对象的构造函数来设置请求头。例如: ```javascript const socket = new WebSocket('ws://example.com', [], { headers: { 'Authorization': 'Bearer TOKEN' } }); ``` 在上述示例中,我们通过传递一个对象作为第三个参数来设置请求头。该对象的 `headers` 属性是一个键值对,其中键是请求头的名称,值是请求头的值。在这里,我们设置了一个名为 `Authorization` 的请求头,值为一个具有权限访问的令牌 TOKEN。这样,服务器端就可以通过这个请求头来进行身份验证或其他操作。 在服务器端接收到 WebSocket 连接请求后,可以通过访问请求对象的头部属性来获取请求头的值。具体实现方式会根据服务器框架的不同而有所差异。 以 Node.js 的 Express 框架为例,在处理 WebSocket 连接的路由处理函数中,可以通过访问 `request.headers` 对象来获取所有的请求头。例如: ```javascript app.ws('/websocket', function(ws, req) { const authorizationHeader = req.headers.authorization; // 进行身份验证或其他操作 }); ``` 在上述示例中,我们通过访问 `req.headers.authorization` 属性来获取名为 `Authorization` 的请求头的值。 综上所述,WebSocket 设置请求头主要是在客户端建立连接时设置请求头,以及在服务器端处理 WebSocket 请求时获取请求头的值。通过设置请求头,我们可以传递一些额外的信息来实现自定义功能和提供安全性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值