cixingguangming55555 / wechat-bot

带二次开发接口的PC微信聊天机器人
MIT License
2.4k stars 657 forks source link

性能优化建议 #142

Open Willy-J opened 2 years ago

Willy-J commented 2 years ago

测试发现,客户端通过websocket接收消息的时候是每隔1秒收到一条消息,即使微信在同一时间收到多条消息,客户端也是每隔1s收到一条消息。这个问题在消息数量少的时候没什么影响,但是在群很多的情况下(几百个),产生的消息众多,消息接收的延迟就会非常大。 我不太清楚内部的处理逻辑,猜测是接收消息的时候先将消息存到某个队列,另一个线程每秒轮询队列消息发送给客户端。如果是这样的话,能否缩短轮询间隔,或者将间隔时间做成配置项。 或者将队列改造成类似java中的阻塞队列。 望采纳!

cixingguangming55555 commented 2 years ago

好的,这段时间比较忙,下个版本更新的时候,会优先考虑

Willy-J commented 2 years ago

好的,这段时间比较忙,下个版本更新的时候,会优先考虑

看了下公众号放出的源码,向客户端发送消息好像是在 send_msg_to_client_timer 中 ,把下面的 if (kMsgQueue.size() > 0) 换成 while (kMsgQueue.size() > 0) 似乎就可以改善问题

cixingguangming55555 commented 2 years ago

好的,谢谢