网站添加https后websocket不能使用

nginx配置同时支持https/wss协议(http/https ws/wss)都可以 在Nginx代理集群支持SSL。整体架构如下: SSL SSL(Secure Socket Layer,安全套接层) 简单来说是一种加密技术, 通过它, 我们可以在通信的双方上建立一个安全的通信链路, 因此数据交互的双方可以安全地通信, 而不需要担心数据被窃取. 关于 SSL 的深入知识, 可以看这篇文章: SSL/TLS协议运行机制的概述 WSS WSS 是 Web Socket Secure... 阅读详情
AI摘要

本文详细介绍了如何使用WebSocket进行实时通信,并强调了在HTTPS环境下使用wss协议的必要性。同时,深入探讨了Nginx作为反向代理服务器在WebSocket应用中的配置方法,包括如何正确设置location和proxy_pass等关键参数。

var socket = new WebSocket("wss://www.aabb.cn/socket/");

注意点:

  1. 如果网站使用HTTPS,WebSocket必须要使用wss协议;
  2. 使用wss协议的连接请求必须只能写域名,而非IP+端口;
  3. 建议在URL域名后面为websocket定义一个路径,本例中是/socket/;

 nginx配置

只需要在HTTPS配置的server内加一个location即可

# websockets
location /socket/ {
    proxy_pass http://127.0.0.1:3000;           
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
}

注意:

  1、location /socket/ {...}这里要格外注意!

    html中的url是 wss://www.aabb.com/socket/,所以Nginx配置中一定要是 /socket/

    如果前端是 wss://www.aabb.com/socket,Nginx对应是 /socket

  2、proxy_pass对应的最好是公网IP加端口号, 'localhost','127.0.0.1'

  3、proxy_http_version 1.1 版本号必须是1.1,这条配置必需

说明:

  Nginx反向代理,无论是HTTP/S或是WebSocket都会走443端口,由Nginx分发给各个项目服务器。

http添加ssl证书后websocket不行了?关于 websocket wss SSL Https 的问题 关于 websocket wss SSL Https 的问题 网站添加https后websocket不能使用 看了一下控制台如图所示: 通过大脑飞速运转以及参考网络资料得出以下结论: 如果网站使用HTTPS,WebSocket必须要使用wss协议; 使用wss协议的连接请求必须只能写域名,而非IP+端口; 建议在URL域名后面为websocket定义一个路径,本例中是/app/; 注意: 1、location /app/ {...}这里要格外注意!     html中的url是 wss://ww 阅读详情

相关推荐

JavaFx webview 加载https网站及Websocket使用SSL连接

为什么80%的码农都做不了架构师?>>> ...

weixin_33971977的博客 1719

websocket适配https

总有改不完的bug 之前一直使用的http请求,但最近一项测试中用了https请求,项目中的websocket功能突然失效了,于是喜提bug一枚。 搭建本地测试环境 tomcat配置https,这里使用java安装时自带的keytool即可。 在命令窗口输入(已经配置了java环境变量 jdk1.8) C:\Users\Administrator>keytool -genkey -alia...

sinat_30707751的博客 3501

nodejs 实现websocket

服务器端使用的nodejs模块ws 需要提前下载 当前资源包括server nginx增加的配置 以及对应客户端消息接收与发送的部分代码

WebSocket在部署https时应该注意

将前端调用websocket的地址 ws,改成 wws。修改Nginx配置,添加修改头部关键代码。

jeremyqmj的博客 1813

从零构建:ESP32S3无线DAP-Link调试器的硬件与软件协同设计

本文详细介绍了基于ESP32S3的无线DAP-Link调试器的硬件与软件协同设计,涵盖关键元器件选型、无线通信协议优化、双核任务处理及低功耗调试方案。通过ESP-NOW协议实现低延迟无线调试,结合USB协议栈与双核协同,为嵌入式开发提供高效灵活的调试解决方案。

gitlab7runner的博客 857

[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp

[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp 文章目录[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp分析log文件格式分析协议组成UDS网络传输层UDS统一诊断服务协议分析文件提取文件逆向flag计算参考链接: teslaaaaa这道题是青龙组被做出来的题目中做出来人数最少的,直到比赛快结束才有第一个人做出来,怎么说,难并不是因为脑洞大,讲道理这道题是一道好题,我当时也是肝了一天没做出来,我倒是把文件提取出来了,奈何比赛时间已经接近尾

Breeze的博客 1万+

网站升级HTTPS后WebSocket不能连接的问题

一、前端代码 var socket = new WebSocket("wss://www.smcic.cn/wss/"); 注意点: 如果网站使用HTTPS,WebSocket必须要使用wss协议; 使用wss协议的连接请求必须只能写域名,而非IP+端口; 建议在URL域名后面为websocket定义一个路径,本例中是/wss/; 二、Nginx配置 前提是...

banketan1026的博客 4766

特斯拉 Model 3解析(八)全面拆解特斯拉自动驾驶大脑:AP控制器硬核技术解析

算力极限:双FSD = 144 TOPS,专为AI推理优化。存储架构:LPDDR4 + NAND + NOR,保证高速/可靠启动。通信架构:以太网传视频,CAN传控制,TSN保障实时性。感知输入:多路摄像头 + 高速SerDes,满足全景感知。电源设计:功率模块+被动元件海洋,稳定性优先。功能安全:双芯片冗余 + GPS + 紧急呼叫,容错率极高。🎯 在我看来,特斯拉AP控制器就是一台“车载超算”,它在电源设计、存储架构和功能安全上远超一般新势力方案。

weixin_43199439的博客 1438

升级HTTPS后WebSocket不能连接

前端部分 注意部分 如果网站WEB使用HTTPS协议,那相应的WebSocket必须要使用wss协议 使用wss协议的请求, 链接必须只能写域名,而非IP+端口 建议在URL域名后面为websocket定义一个路径,例如: /wss/ var ws = new WebSocket("wss://www.xxx.com/wss/"); 后端部分 在HTTPS配置的server内加一个location # websockets location /wss/ { proxy_pass http://

qq_36261130的博客 3241

深入解析FastDDS:SHM与DATA-SHARING传输层的性能对比与实现细节

本文深入对比了FastDDS中SHM与DATA-SHARING两种传输层的实现机制与性能差异。SHM采用端口化共享内存模型,存在两次数据拷贝;而DATA-SHARING通过共享历史实现真正的零拷贝,大幅降低延迟与CPU占用。文章结合实战测试数据,为机器人、自动驾驶等高实时性场景提供了关键的性能优化选型与配置指南。

weixin_28358083的博客 231

Linux服务器 离线安装oracle

Linux服务器 离线安装oracle

xie_bro的博客 4254

websocket连接https

问题:之前做一对一聊天室(https://blog.youkuaiyun.com/jameschiang1995/article/details/102762568)的时候,websocket连接https出了很多问题,就在这里总结下关于websocket连接https: 1、ws和wss的区别 说白了这个类似于http和https,wss是基于TSL协议之上的ws。 如果你的网站是 HTTPS 协议的,那你...

jameschiang1995的博客 1万+

告别高延迟!用RV1106+4G模块+libdatachannel搭建低功耗WebRTC监控,保姆级避坑指南

本文详细介绍了如何利用RV1106低功耗处理器、4G模块和libdatachannel库构建嵌入式WebRTC监控系统,解决高延迟问题。通过硬件选型、系统优化和核心代码实现,提供了一套完整的低功耗实时视频传输方案,特别适合智能安防和工业物联网应用。

weixin_42527401的博客 192

记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】世界上只有一种真正的英雄主义就是在认清生活真相之后仍然热爱它。

2401_84435866的博客 1486

微信本地数据解密实战:从AES加密原理到EnMicroMsg.db恢复指南

数据加密是保障信息安全的核心技术,其中对称加密算法AES因其高效可靠,被广泛应用于各类本地数据保护场景。其原理是通过特定密钥对数据进行混淆转换,确保未经授权者无法读取原始内容。在移动应用领域,本地数据库加密对于保护用户隐私、防止数据泄露具有重要价值。微信作为国民级应用,对其本地存储的聊天记录数据库(EnMicroMsg.db)采用了基于设备标识和用户UIN生成的AES-256-CBC加密方案。理解这一机制,不仅有助于在合法合规前提下进行个人数据备份与恢复,也为开发者进行客户端安全分析、兼容工具开发提供了基础

weixin_30764883的博客 565

基于双目视觉的行车中障碍距离检测方法研究与目标跟踪

本文将介绍基于Python语言的双目视觉技术,以及如何使用该技术检测行车中的障碍物并跟踪目标。双目视觉利用两个摄像头模拟人眼的立体视觉,通过对两个摄像头所捕捉的图像进行比较和分析,可以得到物体的深度信息。首先,我们需要安装Python的OpenCV库,该库提供了丰富的图像处理和计算机视觉功能。接下来,我们进入一个循环中,不断读取左右图像,并将其转换为灰度图像。在视差图上,您可以实现目标检测和跟踪算法来识别和跟踪行车中的障碍物。请注意,上述代码只是一个简单示例,您可以根据具体需求和算法进行修改和扩展。

ZgnObjectivec的博客 276

websocket 从ip端口升级https域名模式

做系统升级的时候前端有用到websocket做数据实时更新,之前用的websocket连接时ip加端口模式: this.ws = new WebSocket("ws://192.168.10.63:15674/ws") 这种模式是没有问题的,但当项目的访问从http升级到https的时候,发现websocket连接不上了 前端报错了!!!让人头疼的错误~~ 遇到问题还得解决问题,于是就硬着头皮整问题,于是发现websocket的连接有2种方式, this.ws = new WebSocket(

zoboy的博客 6139

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

网站升级成https后websocket调用报错了

解决https协议下配置websocket问题

C_0010的博客 1467

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

websocket 连接,http 协议下用 ws, https 协议下必须要使用 wss

为了保证在 HTTPS 网站下的数据安全与一致性,必须使用“wss"。如果在 HTTPS 网站下使用“ws”,浏览器会报错,因为它将“ws"视为不安全的链接,因此它会阻止建立此类连接。“ws”通过 http 传输,"wss"通过 https 传输。在 Https 请求中,每个数据传输包都被加密,在浏览器与服务器角度,安全性要显著高于 Http。https 相当于使用 http+ssl 认证,使用 https 时 websocket 访问(比如建立链接时)必须要使用 wss。

weixin_44545357的博客 5188

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

HTTP、HTTPS 与 WebSocket 详解

本文详细解析了HTTP、HTTPS和WebSocket三种网络协议的核心特性。HTTP是基础请求-响应协议,HTTPS通过SSL/TLS加密增强安全性,而WebSocket支持全双工实时通信。三者均基于TCP,但通信模式不同:HTTP/HTTPS是单向短连接,WebSocket是持久双向连接。HTTP适用于网页浏览和API调用,HTTPS用于敏感数据传输,WebSocket则适合实时交互场景。理解这些协议的特点有助于根据实际需求选择合适的网络通信方案。

wl_qianduan的博客 1667
上一篇: PHP RSA 报错 openssl_sign(): supplied key param cannot be coerced into a private key
下一篇: btc网络导入私钥时节点服务器无响应
梦夏夜
博客等级 码龄10年 532粉丝 56原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦夏夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值