{"action":"created","issue":{"url":"https://api.github.com/repos/miguelgrinberg/python-engineio/issues/24","repository_url":"https://api.github.com/repos/miguelgrinberg/python-engineio","labels_url":"https://api.github.com/repos/miguelgrinberg/python-engineio/issues/24/labels{/name}","comments_url":"https://api.github.com/repos/miguelgrinberg/python-engineio/issues/24/comments","events_url":"https://api.github.com/repos/miguelgrinberg/python-engineio/issues/24/events","html_url":"https://github.com/miguelgrinberg/python-engineio/pull/24","id":161611606,"number":24,"title":"holdtime for  server to have a flexible timer when marking the client as close","user":{"login":"cmabastar","id":4414453,"avatar_url":"https://avatars.githubusercontent.com/u/4414453?v=3","gravatar_id":"","url":"https://api.github.com/users/cmabastar","html_url":"https://github.com/cmabastar","followers_url":"https://api.github.com/users/cmabastar/followers","following_url":"https://api.github.com/users/cmabastar/following{/other_user}","gists_url":"https://api.github.com/users/cmabastar/gists{/gist_id}","starred_url":"https://api.github.com/users/cmabastar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cmabastar/subscriptions","organizations_url":"https://api.github.com/users/cmabastar/orgs","repos_url":"https://api.github.com/users/cmabastar/repos","events_url":"https://api.github.com/users/cmabastar/events{/privacy}","received_events_url":"https://api.github.com/users/cmabastar/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":11,"created_at":"2016-06-22T07:28:44Z","updated_at":"2016-07-04T04:17:29Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/miguelgrinberg/python-engineio/pulls/24","html_url":"https://github.com/miguelgrinberg/python-engineio/pull/24","diff_url":"https://github.com/miguelgrinberg/python-engineio/pull/24.diff","patch_url":"https://github.com/miguelgrinberg/python-engineio/pull/24.patch"},"body":"Dear Miguel,\r\n\r\nThis is an implementation of my ping_holdtime patterned after the BGP & LDP hello/keepalive holdtime.\r\n\r\nBase on a series of tests on my redis/eventlet environment, with \r\n* very low ping_interval= 2\r\n* high burst of traffic = .8 msg/per sec + another 1 msg/per sec\r\n* and multiple connection 30+  ( I know 30 is very low )\r\n\r\nI have found out that some clients are timing out due to a busy processing on the server end.  With the additional latency from redis and pub/sub processing overhead to send messages to multiple clients, the 25% leeway on the ping interval calculation might not be enough in certain use cases. \r\n\r\n"},"comment":{"url":"https://api.github.com/repos/miguelgrinberg/python-engineio/issues/comments/230201802","html_url":"https://github.com/miguelgrinberg/python-engineio/pull/24#issuecomment-230201802","issue_url":"https://api.github.com/repos/miguelgrinberg/python-engineio/issues/24","id":230201802,"user":{"login":"christopher-abastar","id":12439198,"avatar_url":"https://avatars.githubusercontent.com/u/12439198?v=3","gravatar_id":"","url":"https://api.github.com/users/christopher-abastar","html_url":"https://github.com/christopher-abastar","followers_url":"https://api.github.com/users/christopher-abastar/followers","following_url":"https://api.github.com/users/christopher-abastar/following{/other_user}","gists_url":"https://api.github.com/users/christopher-abastar/gists{/gist_id}","starred_url":"https://api.github.com/users/christopher-abastar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/christopher-abastar/subscriptions","organizations_url":"https://api.github.com/users/christopher-abastar/orgs","repos_url":"https://api.github.com/users/christopher-abastar/repos","events_url":"https://api.github.com/users/christopher-abastar/events{/privacy}","received_events_url":"https://api.github.com/users/christopher-abastar/received_events","type":"User","site_admin":false},"created_at":"2016-07-04T04:17:29Z","updated_at":"2016-07-04T04:17:29Z","body":"Hi miguel,\r\n\r\nI saw some changes as well in latest revision in handling the sending of message packets, it was made to async, it looks ok so far on my test. \r\n\r\nHowever, I have another scenario happening as I played around with the ping_timeout (server sending a PONG).   I accidentally made it to a low_interval with 3x the ping_interval.\r\n\r\nping_interval = 3\r\nping_timeout = 9\r\n\r\nWhen I tried to restart the server, some of the clients did an auto reconnect at the same time.  So, we are gonna be expecting the server to send the PONG at the **same moment in time**. I noticed some clients where disconnected frequently. Is it possible that the disconnects where happening because sending of PONGs where async=False?  I haven't sent any data in the server yet."}}
{"actor":{"display_login":"christopher-abastar"}}