gpt4 book ai didi

javascript - Nodejs和WebSockets构造失败 'WebSocket' : The subprotocol '[object Object]' is invalid

转载 作者:太空宇宙 更新时间:2023-11-04 02:45:37 25 4
gpt4 key购买 nike

因此,我的主网页 example.com 通过 cloudflare 运行,并具有来自 Origin -> CF Edge (原始证书)的边缘证书和边缘证书 CF Edge -> Client。我通过使用子域 dt.example.com 来绕过我的 websocket,该子域使用 cloudflare,尽管使用此链接解析源服务器地址而不是 cloudflare 边缘服务器地址(我发现这为我解决了一些问题,或者使用此方法可能会适得其反?)。不管怎样,我正在使用免费的 ssl 证书来保证安全的 websocket -

'use strict';
var https = require('https');
var fs= require('fs');
var express = require('express');
var WebSocket = require('ws');

var server = https.createServer({
cert: fs.readFileSync('../ssl/wss/new/certificate.crt'),
key: fs.readFileSync('../ssl/wss/new/private.pem'),
ca: fs.readFileSync('../ssl/wss/new/ca_bundle.crt')
});

const wss = new WebSocket.Server({server});

wss.on('connection', function connection (ws) {
ws.on('message', function message (msg) {
console.log(msg);
});
});

server.listen(58443, function listening () {
const ws = new WebSocket('wss://dt.example.com:58443', {
rejectUnauthorized: false
});
ws.on('open', function open () {
ws.send('Workin baby');
});
});

- 使用 chrome 的 websocket 客户端插件允许我连接到套接字,但是我不能在 example.com/webpage 上连接,其中以下代码是:

var ws = new window.WebSocket('wss://dt.example.com:58443/', {
rejectUnauthorized: false
});
ws.on('open', function open () {
ws.send('What\'s crackin?');
});

尽管在浏览器 (Chrome) 中,当客户端脚本执行时,它会退出并出现以下错误 Uncaught DOMException: 无法构造 'WebSocket': 子协议(protocol) '[object Object]' 无效。 (第 1 行)

最佳答案

我通过在帖子 elswhere 中偶然发现一些有趣的东西来解决这个问题。本质上,我只是将rejectUnauthorized移到服务器代码中,然后重试在客户端上运行并将其连接到服务器:)

关于javascript - Nodejs和WebSockets构造失败 'WebSocket' : The subprotocol '[object Object]' is invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51394418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com