websocket创建时附加额外信息 [如自定义headers信息(利用nginx)]

news2024/11/29 13:39:56

目录

情景描述:

解决方案

一、服务端要求前端创建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做服务实现的,服务端语言不同,可能获取子协议的方法不同,自行百度

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/152673.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Unity云消散】巩固step,lerp和smoothstep

之前在学习HLSL常用函数时就有涉及到范围相关的函数,但是最近做的东西发现step,lerp和smoothstep这三个函数总是一直在用,总是会在用的时候突然忘记他们分别是干啥的,这里就记录一下方便查看吧,形式大部分参考Unity Shader 极简实…

单绞机控制算法(线缆行业)

在了解单绞机之前需要大家对收放卷以及排线控制有一定的了解,不清楚的可以参看下面几篇博客,这里不再赘述,受水平和能力所限,文中难免出现错误和不足之处,诚恳的欢迎大家批评和指正。 收放卷行业开环闭环控制算法 PLC张力控制(开环闭环算法分析)_RXXW_Dor的博客-CSDN博…

whistle本地代理线上(vue项目)

安装whistle install -g whistle 安装好后,cmd控制台启动whistle “w2 start” 访问whistle本地前端 127.0.0.1:8899 (一般是这个网址) 这里要注意如果您当前使用的是https类型的域名,需要安装https证书,这样才能代…

ShardingSphere的强制路由不起作用

开启注释 开启hint 然后使用注释去查询:/* ShardingSphere hint: dataSourceNameds_db */

本地数仓项目(三)—— 数据可视化和任务调度

1 背景 本文基于《本地数据仓库项目(一)——数仓搭建详细流程》和《本地数仓项目(二)——搭建系统业务数仓详细流程》数据为依托,实现数据可视化和任务调度 2 构造可视化数据 在mysql中新建ads_uv_count表 DROP TABLE IF EXISTS ads_uv_count; CREATE TABLE ads…

机器学习的一般框架

数据科学开发工具 anaconda:管理开发环境 jupyter:编写整个数据处理流程 pycharm:远程编写调试代码 ipdb:pycharm dubug时偶尔出现一些bug,可以用结合ipdb补充解决 数据开发六步 data 数据的获得、清洗、特征工程等…

1.数据结构(栈 队列 数组 链表)

栈 先进后出 后进先出 队列 先进先出 后进后出

告别2022,寄语2023(论一个普通大学牲的2022年能有多奇葩)

今天是2022年12月31日(当然文章发出应该是2023年1月啦,因为我阳了,/(ㄒoㄒ)/~~),原来时间过得这么快,作为中国地质带专的一名普通计算机学牲,也是趁着跨年之际,写一篇属于自己的年末…

Springcloud elasticsearch基础介绍

哈喽~大家好,这篇来看看Springcloud elasticsearch基础介绍。 🥇个人主页:个人主页​​​​​ 🥈 系列专栏: 【微服务】 🥉与这篇相关的文章: SpringClou…

jdk-HashMap(1.8)源码学习

hashMap介绍hashMap是我们日常用得最多的一种并发包其中之一了,hashMap是线程不安全的,不安全主要体现在高并发的场景下,1.8是用数组链表红黑树实现,1.8之前用数组链表,可能会导致死锁及数据丢失。红黑树结构&#xff…

牛啊!长这么大还是头一次见24W字的SpringBoot从入门到实战文档

牛啊!长这么大还是头一次见24W字的SpringBoot从入门到实战文档! 不服还真不行,因为这份文档包含的内容是又全又新,而且还特别高深,从入门到实战的内容全都有!! 继续往下看: 本文档从…

数据仓库基础知识(维度建模)

一、数据仓库概述1.1 数据仓库定义数据仓库:Data Warehouse,是为企业所决策制定过程,提供所有支持类型的数据集合。用于分析性报告和决策支持。数仓是一个面向主题、集成的、相对稳定、反应历史变化的数据集合,随着大数据技术的发…

[MySQL实战环境部署](超详细版)

MySQL实战环境部署1.部署CentOS1.1部署CenOS虚拟机步骤(1)基于VirtualBox(2)下载CentOS1.2环境部署过程2.部署MySQL1.部署CentOS 1.1部署CenOS虚拟机步骤 (1)基于VirtualBox 下载网址: Virtu…

java初学(仅供自己复习)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

【电子通信如何建立数字信任】

在网络钓鱼攻击兴起之后,多数企业会定期开展针对员工的钓鱼邮件培训,只不过这样的培训效果不尽人意,在一份针对企业的钓鱼报告中,钓鱼邮件的攻击频率在过去几年中成倍增加,反钓鱼工作组甚至观察到了有记录以来的最剧烈…

react hook 源码完全解读

前言 从React Hooks发布以来,整个社区都以积极的态度去拥抱它、学习它。期间也涌现了很多关于React Hooks 源码解析的文章。本文就以笔者自己的角度来写一篇属于自己的文章吧。希望可以深入浅出、图文并茂的帮助大家对React Hooks的实现原理进行学习与理解。本文将…

基于Apache Hudi 和 Apache Spark Sql 的近实时数仓架构之宽表建设

前言 无论是在 lamda 架构还是 kappa 架构中,实时计算通常是使用 flinkmq 来实现的,而在这些场景中涉及到多张表 join 时,一般我们的使用方法是多张流表 join 如:Regular Join、Interval Join,或者流表 维表的方式 j…

Rust入门(十):项目发布

发布配置 在 Rust 中 发布配置是预定义的、可定制的带有不同选项的配置,他们允许程序员更灵活地控制代码编译的多种选项。 运行 cargo build 发布时采用的 dev 配置,其更适合开发。 运行 cargo build --release 时采用 release 配置,其是更…

Linux常用命令——netstat命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) netstat 查看Linux中网络系统状态信息 补充说明 netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。 语法 netstat(选项)选项 -a或--all:显示所有连…

ASP.NET Core 3.1系列(23)——使用AutoMapper实现实体之间的相互转换

1、前言 在之前的博客中,我们通过EFCore的Scaffold-DbContext命令一键生成数据库实体类。但在实际业务中,实体类并不能很好地应对所有情况。例如前端页面只需要展示某张表中部分字段的信息,这时如果直接将实体类集合返回给前端界面&#xff…