websocket创建时附加额外信息 [如自定义headers信息(利用nginx)]
目录
一、服务端要求前端创建websocket时附带的token,必须放在request的headers中(常出现在第三方的合作中);
二、服务端只需要获取到token,不介意前端在创建时怎么传的
情景描述:
前端创建websocket的时候,服务端需要在创建时能获取到token作判断,所以在前端创建websocket的时候,需要把token一起传到服务器
解决方案
一、服务端要求前端创建websocket时附带的token,必须放在request的headers中(常出现在第三方的合作中);
思路:
前端创建websocket后,利用nginx做代理,将token加在headers中,发送给服务端
整体效果:
前端创建websocket请求时,发送的token,在服务端的headers获取到了

具体步骤:
1、前端代码 ,发送websocket,将token放到url后面

2、nginx配置,注意开启websocket的代理,$arg_XXX获取到url后的参数 
3、node代码,本例中用的是node做服务端的,ws.upgradeReq.headers获取到headers信息

二、服务端只需要获取到token,不介意前端在创建时怎么传的
思路:
利用websocket实例化时的第二个参数传递token。(第二个参数的用法请百度自行搜索)
整体效果:
前端创建websocket请求时,发送的token,在服务端的同样获取到了
具体实现:
1、前端代码

2、服务端代码
注意:ws.upgradeReq.headers["sec-websocket-protocol"]获取到子协议,本例是用node做服务实现的,服务端语言不同,可能获取子协议的方法不同,自行百度
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)