A. This is likely due to initial connections between client and server blocking due to reverse DNS resolution. There is not much that can be done to avoid this without a very small modification to your application code within tänzer itself; any conceivable means of sidestepping this problem would involve breaking tänzer's deliberate design decision to not open nor manage its own listening sockets.
To sidestep this problem and disable reverse DNS lookup on client sockets, put this in your application prior to entering the Tcl event loop:
[tanzer::server accept]
as a callback to socket -server
for each listening socket you wish to provide service on.[tanzer::server accept]
as a callback to the TLS equivalent of socket -server
, [::tls::socket -server]
, as provided by the tls
package, as a direct replacement for unencrypted sockets. As tänzer is focused on providing HTTP/1.1 semantics first and foremost, it is not expected that a standalone server or support module will be incorporated into tänzer itself to handle TLS service configuration and startup. On the other hand, this state of affairs offers plenty of flexibility!read
events to the event handler until the message body has been read in full. The message body will be considered "finished" upon the receipt of the first write
event.[tanzer::server listen]
, as that method generates a call to [vwait forever]
. Instead, consider accepting incoming connections using [tanzer::server accept]
, or create a new tanzer::session object for client sockets already opened by your framework or application.examples/coroutine.tcl
.