chrononeko / bugtracker

Chrononeko Bugtracker
0 stars 0 forks source link

功能请求: 支持指定绑定ip #10

Closed XiYang6666 closed 1 year ago

XiYang6666 commented 1 year ago

使用docker运行LiteLoaderQQNT时使用此插件无法从外部连接。

ilharp commented 1 year ago

Chronocat 会默认绑定所有可用的网络地址。使用 此镜像 的用户未有反馈无法连接问题。

如果你遇到了网络连接性问题,请先检查自己的网络配置,或更换使用上面的镜像尝试。

XiYang6666 commented 1 year ago

经测试是token填写错误Chronocat未返回数据导致无法连接,希望能添加token错误提示。

ilharp commented 1 year ago

目前的 Websocket 连接行为是这样的:

401 Unauthorized 状态码已经足够明确。请问你使用的是哪种方法进行的对接?如果你使用 Chronocat Koishi Adapter,那么此 issue 可以保留;否则请前往对应接入方法的 repo 创建 issue。

XiYang6666 commented 1 year ago

我使用 NoneBot-Adapter-Red 进行对接,阅读源码后发现websocket验证错误时返回 401 状态码。0-999的状态码在websocket中属于保留段,所以python未能正确关闭连接。

参考资料: https://datatracker.ietf.org/doc/html/rfc6455#section-7.4.2

ilharp commented 1 year ago

IANA 的 WebSocket Close Code Number Registry 似乎追加定义了 3000 Unauthorized(等同于 HTTP 401)和 3003 Forbidden(等同于 HTTP 403)。将采用 3000 作为认证失败的错误码,各适配器可以进行此适配。

Hieuzest commented 1 year ago

目前的 Websocket 连接行为是这样的:

顺便提一下,目前这里存在一个问题,on('disconnect')并不存在,需要on('close'),因此现在的authClients会随着重连一直增加

ilharp commented 1 year ago

目前的 Websocket 连接行为是这样的:

顺便提一下,目前这里存在一个问题,on('disconnect')并不存在,需要on('close'),因此现在的authClients会随着重连一直增加

确实,这个可以修一下。目前 wsRouterServerwsReversedRouterServer 都存在这个问题。

XiYang6666 commented 1 year ago

https://github.com/chrononeko/chronocat/pull/8