我遇到了一个恼人的问题,我一直试图在网上寻找一个解决方案,但是没有运气(如果我错过了什么东西,我很高兴能找到一个资源)。
摘要
我的问题具体涉及到勇敢的网页浏览器,它是原生的‘勇敢之盾’阻止我的后端网络套接字,我怀疑这是由于‘指纹’。
在所有其他浏览器上,我的网站将加载,连接到我的后端websocket是没有问题的。但是,在打开了勇敢浏览器和勇敢之盾之后,客户端拒绝连接到我的websocket,并且控制台中没有显示错误以指出问题。
我有其他第三方websocket运行,他们似乎完美地工作,无论勇敢之盾是打开还是关闭-让我相信这可能是与我创建我的websocket服务器的方式有关?
网站: --这与在“rekt”和“chat”选项卡下显示的数据有关。
我的代码(服务器)
const https = require('https');
const {server} = require('ws');
const app = require(./app.js); // <-- app.js holds my express() server.
//ssl info//
const privateKey = fs.readFileSync(*omitted for privacy*)
const certificate = fs.readFileSync(*omitted for privacy*)
const credentials = {*omitted for privacy*}
const server = https.createServer(credentials, app).listen(PORT, () => {
console.log(`listening on port ${PORT}...`);
}
const wss = new Server({server}, {clientTracking: false});我的代码(客户端)
const serverAddress = '***';
let liqWs = new WebSocket(serverAddress);
...
liqWs.onopen = (e) => console.log('testing for open') //<-- For testing
liqWs.onmessage = (e) => { *do something with the message* }我试过什么
off.
当勇敢的盾牌打开时,连接根本不会出现在网络选项卡中,因此无法查看状态代码.。
“勇敢之盾”的设置让
const wss = new Server({server}, {clientTracking: false});。由于ws文档指出,clientTracking选项将允许我指定是否希望跟踪用户。这仍然没有你看我的客户端代码片段上面-我添加了一个纯粹的testing.。
我想其他人以前也遇到过这个问题。一个解决办法就是禁用“勇敢之盾”,但是这并不是一个可行的解决方案,因为我的站点的访问者不应该这样做,并且看到在默认情况下启用了“勇敢之盾”,这是一个很大的不便。
如果我遗漏了任何重要的信息,请告诉我。
发布于 2022-05-17 02:36:16
如果任何人在未来遇到这种情况-问题是我打开的WebSockets比允许的更多的勇敢盾打开,特别是指纹封锁。Brave的团队很快就发现了与我的代码无关的问题。
当限制是10的时候,我正在同时打开14个websockets。在即将发布的版本(1.40.x)中,勇敢将这个限制提高到了30个。
https://stackoverflow.com/questions/72245707
复制相似问题