Stapxs / Stapxs-QQ-Lite-2.0

一个兼容 OneBot 协议的非官方网页版 QQ 客户端、electron 客户端。
https://stapxs.github.io/Stapxs-QQ-Lite-2.0/
Apache License 2.0
434 stars 36 forks source link

在 chromium 内核上因 ws 不会被自动升级成 wss 导致无法连接,且 QQ Lite 本身无法发起 wss 连接[错误] #21

Closed AsenHu closed 1 year ago

AsenHu commented 1 year ago

描述错误

在 chromium 内核的浏览器上,当连接地址是公网的一个域名时,点击连接会出现报错。但 Firefox 能够正常连接 复现流程

在 chromium 内核的浏览器上(我使用了 edge 与 chrome 成功复现,但没有在 Firefox 上成功复现) 链接地址填 my.domain.com:443,这里的 my.domain.com 换成任意域名都可复现,别的端口我没试 密钥我填的是我连接服务器的密钥,不过我猜测任何字符串均可复现 截图

image image 版本信息

第一张图无法连接 1 - 2.1.8 2 - edge-chromium 3 - 108.0.1462 4 - Windows 10

第二张图可以连接 1 - 2.1.8 2 - firefox 3 - 110.0.0 4 - Windows 10 更多

这是控制台报错,看完 chromium 和 Firefox 的控制台报错,我似乎明白为什么会这样了 连接地址我填的是 my.domain.com,浏览器请求的是 ws://my.domain.com/,因为网站支持 HTTPS,在 chromiun 内核的浏览器上会直接拒绝连接,而在 Firefox 上是把 ws 升级成 wss 来建立连接。 就在刚刚,我尝试在连接地址上填写 wss://mydomain.com,然后我看到浏览器发了一个 ws://wss//my.domain.com 的 GET 请求…… image image `runtime-core.esm-bundler.js:228

   DOMException: Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.
at D.create (https://stapxs.github.io/Stapxs-QQ-Lite-2.0/js/app.33b44e32.js:1:2362)
at Proxy.connect (https://stapxs.github.io/Stapxs-QQ-Lite-2.0/js/app.33b44e32.js:1:85510)
at onSubmit.g.<computed>.g.<computed> (https://stapxs.github.io/Stapxs-QQ-Lite-2.0/js/app.33b44e32.js:1:31128)
at https://stapxs.github.io/Stapxs-QQ-Lite-2.0/js/chunk-vendors.2ea75461.js:1:71769
at o (https://stapxs.github.io/Stapxs-QQ-Lite-2.0/js/chunk-vendors.2ea75461.js:1:28874)
at a (https://stapxs.github.io/Stapxs-QQ-Lite-2.0/js/chunk-vendors.2ea75461.js:1:28957)
at a (https://stapxs.github.io/Stapxs-QQ-Lite-2.0/js/chunk-vendors.2ea75461.js:1:29063)
at HTMLFormElement.n (https://stapxs.github.io/Stapxs-QQ-Lite-2.0/js/chunk-vendors.2ea75461.js:1:71551)

s @ runtime-core.esm-bundler.js:228 l @ runtime-core.esm-bundler.js:206 o @ runtime-core.esm-bundler.js:160 a @ runtime-core.esm-bundler.js:166 a @ runtime-core.esm-bundler.js:176 n @ runtime-dom.esm-bundler.js:345`

Stapxs commented 1 year ago

1.0 是有失败自动重试 wss 的功能 2.0 忘记做了(x

AsenHu commented 1 year ago

以后可能修复这个问题吗(小声) 其实自动登录和记住密码似乎也有点问题 要是这三个问题都解决了我就要卸载 QQ 了

Stapxs commented 1 year ago

更新已提交,需要反馈 …… 我这没有部署好的 wss 的服务,需要你试一下能不能用 emmmm

AsenHu commented 1 year ago

图片 谢谢大佬,在 chromium 内核上可以正常使用 wss 了

AsenHu commented 1 year ago

谢谢大佬 项目在 Windows 还是移动端的体验都很棒! wss 还有移动端白边的问题都解决了 目前项目还有一些不影响使用的奇怪的小问题

AsenHu commented 1 year ago

一个是自动深色模式似乎没有用 还有消息回调 不管设置里这个开关怎么按 都不会主动获取自己消息的样子 我过几天收集下相关的信息再写个 issue (其实我个人感觉这些问题不修都没关系,谁会不知道自己发了啥消息呢)

Stapxs commented 1 year ago

默认情况下 oicq 不会返回自己的消息,所以应用会尝试自己去获取,这种情况下在其他端发送的消息会无法显示。 停止消息回调那个选项的作用是当 bot 会返回自己的消息的时候开的 emmm 比如说 go-cqhttp 默认就会返回。oicq 也可以,需要去配置文件开: 图片

oicq 这个有点 bug,私聊下的不会返回。这个选项会在收到自己的消息的时候自动打开 emmm 一般情况下不用去管

AsenHu commented 1 year ago

嗷嗷 谢谢!我 ignore_self 已经是 false 了,我晚点研究 oicq 去。