websocket连接wss踩坑日记

websocket连接wss踩坑日记

//var ws = new WebSocket("ws://192.168.0.142:2347");第一次
//var ws = new WebSocket("wss://192.168.0.142:2347");第二次出错
var ws = new WebSocket("wss://域名/tv/wss");//正常

网站部署ssl后,websocket连接的协议也要从ws变为wss(ws+ssl)
修改未wss,报错net::ERR_SSL_PROTOCOL_Error

因为IP肯定没得证书啊,只能陪着域名,需要修改
nginx配置文件nginx.conf
宝塔修改网站->设置->配置文件

server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name xxx;
#证书文件名称
ssl_certificate xxx;
#私钥文件名称
ssl_certificate_key xxx;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
root C:/it/admin/blogBackstage;
index index.html index.htm;
}
#重点
location ~ ^/tv{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;

		# proxy_pass http://192.168.0.252:2347;
		proxy_pass http://localhost:2347;
		}

    error_page  404              ui-404.html;

}

正常访问域名(tv可以修改,目的是与框架路由区分开)
var ws = new WebSocket(“wss://域名/tv/wss”);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebSocket是一种在单个TCP连接上进行全双工通信的协议,常用于实时应用程序,如在线聊天、游戏等。WSSWebSocket的加密版本,通过使用SSL/TLS协议来保护数据传输,提供了安全的通信环境。 配置WSSWebSocket over SSL)通常涉及到以下几个步骤: 1. **服务器端设置**: - 使用支持SSL/TLS功能的服务器库,如Node.js的`https`模块或Java的Jetty。 - 创建一个HTTPS服务器,加载SSL证书和私钥。证书用于客户端验证服务器的身份,私钥用于加密和解密数据。 ```javascript (Node.js, using https module): const https = require('https'); const fs = require('fs'); const options = { key: fs.readFileSync('path/to/private.key'), cert: fs.readFileSync('path/to/certificate.crt'), port: 8443, requestCert: true, rejectUnauthorized: true, server: { ws: true }, }; https.createServer(options, (req, res) => { // WebSocket handling logic here }).listen(options.port); ``` 2. **WebSocket处理**: - 在服务器上启用WebSocket支持,监听`upgrade`请求,并转换为WebSocket连接。 ```javascript: if (req.method === 'GET' && req.url === '/ws') { req.socket.on('upgrade', (socket, head, req) => { // Upgrade to WebSocket connection const ws = new WebSocket.Server({ server: socket }); ws.on('connection', wsClient => { // Handle WebSocket client connections }); }); } ``` 3. **客户端连接**: - 客户端使用`wss`而不是`ws`来建立连接,URL前缀加上`s`表示加密。 ```javascript (JavaScript client): const wss = new WebSocket('wss://yourdomain.com/ws'); wss.addEventListener('open', () => { // Connection established }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值