Open wey580231 opened 4 years ago
TCPClient中的AfterSend在发送失败时,将req放入writeparam_list_队列末尾。再回到sendinl函数的484行writep->buf.len = writecircularbuf.read(writep->buf_.base, writep->buftruelen); 时,若从writeparam_list_取出的writep再次从缓冲区中获取了一段数据,这样会不会造成之前发送失败时的数据被丢失了?
会的,AfterSend的功能就是把uv_write_t回收而已。不负责发送失败后的逻辑处理。 我想这部分逻辑可交给上层处理。一方请求得不到响应时,是继续请求还是放弃?
TCPClient中的AfterSend在发送失败时,将req放入writeparam_list_队列末尾。再回到sendinl函数的484行writep->buf.len = writecircularbuf.read(writep->buf_.base, writep->buftruelen); 时,若从writeparam_list_取出的writep再次从缓冲区中获取了一段数据,这样会不会造成之前发送失败时的数据被丢失了?