-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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: