-
Notifications
You must be signed in to change notification settings - Fork 37
Connect 失败 #116
Comments
找到了解决方法,原来是需要在mirai-api-http的配置文件中这样去写 adapters: 不过还有一件事情想请问一下,在最新版本中未提供判断是否登录成功的API,如何判断指定BOT是否已上线? |
mirai没有登录的bot,应该是无法Connect的。 |
具体是哪些事件无法收到?
|
这是我的代码,如果connect会跳出循环,输出login successful,我是用一个程序控制多个bot,不知道这样写是否可以?(在之前的版本是可以的,我之前使用的是1.x的版本,昨天所有QQ全部提示使用非官方版本QQ冻结了,所以更新至最新版本)
|
有没有可能是 getchar(); 阻塞了标准输出。去掉试试。 |
依然还是不行的,没有阻塞标准输出的,因为多数BOT可以接收到事件并且输出内容,我现在把getchar();也去掉了,还是不行。 |
你的问题是否已解决,如果没有解决,我最近可能会在线程安全方面对 mirai-cpp 进行检查,我也不确定它是不是线程安全的。 |
没有解决哦,最终我换回了1.x版本。 |
我怀疑在MiraiBot里面有部分不是线程安全的( |
可以试试这样 |
几乎都不是线程安全的,MiraiBot 类的 API 主要取决于那个HTTP库,那个库应该不是线程安全的。 |
我记得STL可以线程安全 |
libcpr(指正 |
还有其实可以考虑直接用STL内置thread库() |
需要控制线程的数量,不能收到一条消息就发起一条线程。这个项目属于 I/O 密集型程序,最好用协程,只是 C++20 的协程用起来过于麻烦。 |
cpp-httplib是线程安全的,他会block conccurent requests,我之前提的 #133 就是关于这个的( |
mirai-cpp的线程安全问题我觉得主要来自于断开链接以及重建链接的过程中,在单次open到close/lost connection之间应该是完全安全的 |
threadpool用的就是STL的threads库啊) |
好吧是我没看() |
mirai-core 版本 2.7.0
mirai-api-http 版本:2.0.2
mirai-cpp 版本 2.0.2
目前的情况是调试跟踪在执行Connect函数时可以成功获取到sessionKey,但是在执行pmem->eventClient.Connect时的返回文本中显示了404,如果忽略这个问题也无法接收到事件响应,请问这个是我环境哪里出了问题吗?
The text was updated successfully, but these errors were encountered: