Comparison

net/server_epoll.lua @ 11741:dcf38ac6a38c

net.server: Add a predrain callaback just before writes Allows sneaking in things in the write buffer just before it's sent to the network stack. For example ack requests, compression flushes or other things that make sense to send after stanzas or other things. This ensures any additional trailing data sent is included in the same write, and possibly the same TCP packet. Other methods used such as timers or nextTick might not have the same effect as it depends on scheduling.
author Kim Alvefur <zash@zash.se>
date Mon, 16 Aug 2021 12:34:52 +0200
parent 11738:3f1450ec37f4
child 11743:856dada099fa
comparison
equal deleted inserted replaced
11740:b92f2abe0bda 11741:dcf38ac6a38c
470 470
471 -- Called when socket is writable 471 -- Called when socket is writable
472 function interface:onwritable() 472 function interface:onwritable()
473 self:onconnect(); 473 self:onconnect();
474 if not self.conn then return; end -- could have been closed in onconnect 474 if not self.conn then return; end -- could have been closed in onconnect
475 self:on("predrain");
475 local buffer = self.writebuffer; 476 local buffer = self.writebuffer;
476 local data = buffer or ""; 477 local data = buffer or "";
477 if type(buffer) == "table" then 478 if type(buffer) == "table" then
478 if buffer[3] then 479 if buffer[3] then
479 data = t_concat(data); 480 data = t_concat(data);