Open crazywhalecc opened 1 year ago
3.1.9
我在做正向 WS 适配的时候,对 OneBot12Adapter 做一些通用型适配,例如注册机器人状态,更新机器人状态的部分。
我使用所在容器不同来适配正反向 WS,下面是我修改的部分代码,在 OneBot12Adapter 的 handleStatusUpdate() 方法内:
OneBot12Adapter
if (container()->has(WebSocketMessageEvent::class)) { $message_event = container()->get(WebSocketMessageEvent::class); BotMap::registerBotWithFd( bot_id: $bot['self']['user_id'], platform: $bot['self']['platform'], status: $bot['good'] ?? false, fd: $message_event->getFd(), flag: $message_event->getSocketFlag() ); }
我在使用正向 WS 的时候,使用正向适配器,注册了 BotEvent 的调用,打算直接复用 OneBot12Adapter 的状态更新器和框架内置的机器人 BotMap。正向适配器代码如下:https://gist.github.com/crazywhalecc/7b86584a659ea2622d87f281b6b22a4b
有关适配正向 WS 的代码见分支 ob12-ws-adapter,但这里的核心问题是容器的问题,我在当前上下文的容器里并没有注册 WebSocketMessageEvent 对象,但是 has() 返回的是 true,这样我就没办法判断是否是正向 WS 环境了。(正向 WS 在注册容器时并没有填入 WebSocketMessageEvent)
ob12-ws-adapter
WebSocketMessageEvent
has()
同上。
No response
受影响版本
3.1.9
描述
我在做正向 WS 适配的时候,对 OneBot12Adapter 做一些通用型适配,例如注册机器人状态,更新机器人状态的部分。
我使用所在容器不同来适配正反向 WS,下面是我修改的部分代码,在
OneBot12Adapter
的 handleStatusUpdate() 方法内:我在使用正向 WS 的时候,使用正向适配器,注册了 BotEvent 的调用,打算直接复用 OneBot12Adapter 的状态更新器和框架内置的机器人 BotMap。正向适配器代码如下:https://gist.github.com/crazywhalecc/7b86584a659ea2622d87f281b6b22a4b
有关适配正向 WS 的代码见分支
ob12-ws-adapter
,但这里的核心问题是容器的问题,我在当前上下文的容器里并没有注册WebSocketMessageEvent
对象,但是has()
返回的是 true,这样我就没办法判断是否是正向 WS 环境了。(正向 WS 在注册容器时并没有填入WebSocketMessageEvent
)复现步骤
同上。
解决方案
No response
附加信息
No response