koishijs / koishi

Cross-platform chatbot framework made with love
https://koishi.chat
MIT License
4.5k stars 247 forks source link

Bug: 使用docker安装后打开网页一直在重定向,提示`正在连接到Koishi服务器` #967

Closed tcatche closed 1 year ago

tcatche commented 1 year ago

Describe the bug

使用docker安装后打开网页一直在重定向,提示正在连接到Koishi服务器

Steps to reproduce

安装步骤:

docker pull koishijs/koishi:latest-puppeteer
docker run --name koishi -p 25140:5140 koishijs/koishi:latest-puppeteer

打印日志:

$ koishi start
2023-02-08 01:01:41 [I] app Koishi/4.11.5
2023-02-08 01:01:41 [I] app apply plugin group:entry
2023-02-08 01:01:41 [I] app apply plugin group:basic
2023-02-08 01:01:41 [I] app apply plugin help
2023-02-08 01:01:41 [I] app apply plugin rate-limit
2023-02-08 01:01:41 [I] app apply plugin locales
2023-02-08 01:01:41 [I] app apply plugin commands
2023-02-08 01:01:41 [I] app apply plugin group:console
2023-02-08 01:01:41 [I] app apply plugin analytics
2023-02-08 01:01:41 [I] app apply plugin console
2023-02-08 01:01:41 [I] app apply plugin dataview
2023-02-08 01:01:41 [I] app apply plugin logger
2023-02-08 01:01:41 [I] app apply plugin insight
2023-02-08 01:01:41 [I] app apply plugin market
2023-02-08 01:01:41 [I] app apply plugin sandbox
2023-02-08 01:01:41 [I] app apply plugin status
2023-02-08 01:01:41 [I] app apply plugin group:database
2023-02-08 01:01:41 [I] app apply plugin database-sqlite
2023-02-08 01:01:41 [I] app apply plugin assets-local
2023-02-08 01:01:41 [I] app apply plugin group:adapter
2023-02-08 01:01:41 [I] app apply plugin gocqhttp
2023-02-08 01:01:41 [I] assets missing config "selfUrl", fallback to "file:" scheme
2023-02-08 01:01:41 [I] app server listening at http://0.0.0.0:5140
2023-02-08 01:01:42 [I] sqlite auto creating table user
2023-02-08 01:01:42 [I] sqlite auto creating table channel
2023-02-08 01:01:42 [I] sqlite auto creating table stats_daily
2023-02-08 01:01:42 [I] sqlite auto creating table stats_hourly
2023-02-08 01:01:42 [I] sqlite auto creating table stats_longterm

打开网页:http://ip:25140 一直在重定向,提示正在连接到Koishi服务器,截图Gif(点击可播放): koishi-error1

网页控制台错误: image

Expected behavior

期望正常

Versions

Additional context

No response

HuanLinOTO commented 1 year ago

漏 ip 了 ( console 的截图 ), 注意一下, 另外提供 network 的截图可以更加容易地判断问题

tcatche commented 1 year ago

漏 ip 了 ( console 的截图 ), 注意一下, 另外提供 network 的截图可以更加容易地判断问题

network截图补充: image image

shigma commented 1 year ago

能看到 Illegal invocation 出现的位置吗?点击 client.js 然后点击 {} 定位看看?

顺便请提供浏览器版本。

tcatche commented 1 year ago

能看到 Illegal invocation 出现的位置吗?点击 client.js 然后点击 {} 定位看看?

image image

顺便请提供浏览器版本。

Chrome 105.0.5195.127(正式版本) (64 位)

shigma commented 1 year ago

有没有可能是 docker把5140映射到25140了,但console在浏览器上还在请求5140,然后请求不到

ilharp commented 1 year ago

有没有可能是 docker把5140映射到25140了,但console在浏览器上还在请求5140,然后请求不到

思考了一下,如果是这种情况的话,我们应该(理应)仍旧可以通过指定 selfUrl 的方式解决此问题?即、代码上应该没有依赖当前 port 的逻辑吧?

shigma commented 1 year ago

思考了一下,如果是这种情况的话,我们应该(理应)仍旧可以通过指定 selfUrl 的方式解决此问题?即、代码上应该没有依赖当前 port 的逻辑吧?

那么用户需要手动改 selfUrl,但是现在他进不去没法改(

tcatche commented 1 year ago

有没有可能是 docker把5140映射到25140了,但console在浏览器上还在请求5140,然后请求不到

我试了下不做端口,还是一样的问题,访问 http://ip:5140

docker run --name koishi2 -p 5140:5140 koishijs/koishi
shigma commented 1 year ago

因为用的是 ip 吧,控制台在请求 localhost?

ilharp commented 1 year ago

思考了一下,如果是这种情况的话,我们应该(理应)仍旧可以通过指定 selfUrl 的方式解决此问题?即、代码上应该没有依赖当前 port 的逻辑吧?

那么用户需要手动改 selfUrl,但是现在他进不去没法改(

https://github.com/koishijs/docs/blob/2053cf6ad4008ee7659b3392b459dc2389873827/manual/starter/docker.md?plain=1#L13

shigma commented 1 year ago

@tcatche 请手动在 koishi.yml 中配置好 selfUrl 然后再次尝试。

Anillc commented 1 year ago

有没有可能是 docker把5140映射到25140了,但console在浏览器上还在请求5140,然后请求不到

实测不是这个问题,映射之后 websocket 也能正常连接到 25140

tcatche commented 1 year ago

@tcatche 请手动在 koishi.yml 中配置好 selfUrl 然后再次尝试。

破案了,我远程控制另外一台电脑可以打开没有问题。用手机也能打开。

怀疑可能是我当前电脑杀毒软件或者其他安全策略静默阻止了内部的ws请求吧