I've been using libuv to implement a custom http server to serve a web app. The web app used bidirectional websocket protocols to move data back and forth between the client and server.
I'm a little confused as to how to handle the lifecycles for connected clients. The 'after write' hook seems to give me the chance to delete clients, which I could see doing upon receiving some kinds of errors, but with http clients being, by design, able to drop out at any time, on either end, I don't understand how I should differentiate between: * clients who've experienced a write error, but are still alive (the error, for example, could be me trying to push data down the web socket faster than the client can handle) These clients might benefit from some throttling, but should be "tried again." * clients who are dead, and show up with a write error. These client data structures should be deleted and forgotten. Is there a known metric within the libuv paradigm for when a client should be considered "Gone forever," or is this entirely up to the use case? If you have architectural ideas on this, I'd really love to hear them. Thanks, ST -- You received this message because you are subscribed to the Google Groups "libuv" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/libuv. For more options, visit https://groups.google.com/d/optout.
