GraiaProject / Ariadne

一个优雅且完备的 Python QQ 自动化框架,基于 Mirai API HTTP v2。 Powered by Graia Project.
https://graia.cn/ariadne
GNU Affero General Public License v3.0
753 stars 45 forks source link

[Feature] 支持配置反向连接的监听地址与端口 #231

Closed EZForever closed 1 year ago

EZForever commented 1 year ago

使用场景

API文档,目前支持的两种反向连接配置(HttpServerConfigWebsocketServerConfig)都支持配置路由/endpoint,但可能更重要的监听地址与端口却只能使用通信后端的默认值127.0.0.1:8000。考虑到这也是包括http.server在内的一众服务的默认地址,目前的实现严重制约了Ariadne框架部署的灵活性。

你想要的解决方案

为这两种配置添加hostport属性,以指定监听地址与端口。为保持兼容性,这两个属性可以具有默认值。

是否已有相关实现

暂未找到相关实现,但可以通过修改默认值的方式实现workaround

其他内容

无。

BlueGlassBlock commented 1 year ago
BlueGlassBlock commented 1 year ago

由于上游实现的局限性,多个账号无法利用多个端口提供服务,因此采用这个设计会导致多账号用户更加迷惑。

你可以通过以下代码进行全局配置端口:

from graia.ariadne import Ariadne
from launart import Launart
from graia.amnesia.builtins.aiohttp import AiohttpServerService

launch_manager = Launart()

host = "127.0.0.1"
port = 8848

aiohttp_server = AiohttpServerService(host, port)

launch_manager.add_launchable(aiohttp_server)

Ariadne.config(launch_manager, ...)
EZForever commented 1 year ago

感谢答复,我还是刚刚接触GraiaProject的各个项目,大概是文档还没读到手动提供服务的地方。

已经删除workaround,避免造成后来人的误解。