On 11 February 2011 22:40, Justin Karneges <[email protected]> wrote: > On Friday 11 February 2011 14:04:59 Matthew Wild wrote: >> My opinion on this is that we don't need application-layer throttling >> mechanisms. If a server wants to punish a peer, it can simply stop >> reading from the connection for a while. The peer doesn't have to know >> about this (such a notification MAY be useful for UI purposes, but I >> personally doubt it). > > The trouble is that throttling and keepalive pings don't play well together. > It is easy to imagine a client today that uses XEP-0199 pings to the server > every minute, but then gets throttled by the server for over a minute. The > result is that sending too fast means you get disconnected. This is pretty > terrible if there's no way to know what counts as "too fast". >
I'm not sure there's any reason the client should have multiple pings of any kind (XEP-0199 or <r> from XEP-0198) in flight at the same time. > All of that said, I wonder now if we can replace the throttle messages with > whitespace keepalives. So servers stop reading data from the socket, but > still continue to send whitespace to the client on a regular interval. > Clients should not time out a connection if it continues to receive data from > the server. Maybe that's all we need? > That's one sensible approach, though I don't know how necessary it is in practice (and hence whether we should spec it). Either way, this is completely unrelated to XEP-0198 as I see it. Throttling also happens without XEP-0198. Regards, Matthew
