simple-robot / simbot-component-onebot

一个Kotlin多平台的 OneBot SDK 实现,一个异步高效、Java 友好的 Simple Robot 组件库 ~ 🐱🐱🐱
https://simbot.forte.love/component-onebot.html
GNU Lesser General Public License v3.0
10 stars 3 forks source link

feat: 适配 Universal 连接方式 #72

Open Hypoths opened 4 months ago

Hypoths commented 4 months ago

希望能够适配Universal的连接方式,从而在一条连接上同时使用两种服务,从而无需同时配置HttpWebSocket服务,现阶段apiServerHost无法使用WebSocket连接

根据配置的不同,连接用户提供的 URL 的客户端有三种:API 客户端、Event 客户端和 Universal 客户端。API 客户端提供 API 调用服务;Event 客户端提供事件推送服务;Universal 客户端在一条连接上同时提供两种服务。

注意

只要服务器能够正确区分,API 客户端和 Event 客户端可以向同一个 URL 建立连接,但这是两条连接,和 Universal 客户端不同。

摘选自OneBot11文档-反向WebSocket

ForteScarlet commented 4 months ago

Universal 比起同时配置 HTTPws 两种服务来讲似乎并不会带来 太多 的好处。对于API来讲,Http的"一问一答"更便于控制、更直观、也更利于 API 与 bot 之间的分离。

我们认为API使用HTTP是最好的方式。对 Universal 做出支持虽然需要修改或增加不少内容,但倒也不是不可以,只是觉得必要性不大。

是否有更具体的应用场景案例,使得此场景下必须使用 Universal 也就是共用ws的方式,或者此场景 Universal 能带来远超使用两种连接方式的好处呢?