{"action":"created","issue":{"url":"https://api.github.com/repos/jonashagstedt/swampdragon-notifications/issues/3","labels_url":"https://api.github.com/repos/jonashagstedt/swampdragon-notifications/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/jonashagstedt/swampdragon-notifications/issues/3/comments","events_url":"https://api.github.com/repos/jonashagstedt/swampdragon-notifications/issues/3/events","html_url":"https://github.com/jonashagstedt/swampdragon-notifications/issues/3","id":75145277,"number":3,"title":"User presence","user":{"login":"jonashagstedt","id":603835,"avatar_url":"https://avatars.githubusercontent.com/u/603835?v=3","gravatar_id":"","url":"https://api.github.com/users/jonashagstedt","html_url":"https://github.com/jonashagstedt","followers_url":"https://api.github.com/users/jonashagstedt/followers","following_url":"https://api.github.com/users/jonashagstedt/following{/other_user}","gists_url":"https://api.github.com/users/jonashagstedt/gists{/gist_id}","starred_url":"https://api.github.com/users/jonashagstedt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonashagstedt/subscriptions","organizations_url":"https://api.github.com/users/jonashagstedt/orgs","repos_url":"https://api.github.com/users/jonashagstedt/repos","events_url":"https://api.github.com/users/jonashagstedt/events{/privacy}","received_events_url":"https://api.github.com/users/jonashagstedt/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-05-11T09:04:46Z","updated_at":"2015-05-17T17:12:28Z","closed_at":null,"body":"Continuation from https://github.com/jonashagstedt/swampdragon/issues/70"},"comment":{"url":"https://api.github.com/repos/jonashagstedt/swampdragon-notifications/issues/comments/102824039","html_url":"https://github.com/jonashagstedt/swampdragon-notifications/issues/3#issuecomment-102824039","issue_url":"https://api.github.com/repos/jonashagstedt/swampdragon-notifications/issues/3","id":102824039,"user":{"login":"bufke","id":739307,"avatar_url":"https://avatars.githubusercontent.com/u/739307?v=3","gravatar_id":"","url":"https://api.github.com/users/bufke","html_url":"https://github.com/bufke","followers_url":"https://api.github.com/users/bufke/followers","following_url":"https://api.github.com/users/bufke/following{/other_user}","gists_url":"https://api.github.com/users/bufke/gists{/gist_id}","starred_url":"https://api.github.com/users/bufke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bufke/subscriptions","organizations_url":"https://api.github.com/users/bufke/orgs","repos_url":"https://api.github.com/users/bufke/repos","events_url":"https://api.github.com/users/bufke/events{/privacy}","received_events_url":"https://api.github.com/users/bufke/received_events","type":"User","site_admin":false},"created_at":"2015-05-17T17:12:28Z","updated_at":"2015-05-17T17:12:28Z","body":"Looking forward to DRF serializers! \r\n\r\nThis is my solution for now. \r\n\r\nDefine my own user manager that is a copy of yours\r\nhttps://github.com/bufke/chat-experiment/tree/master/chatroom/connection\r\n\r\nOverride the router because it uses your user manager and not mine\r\nhttps://github.com/bufke/chat-experiment/blob/master/chatroom/routers.py#L55\r\n\r\nRight now all this does is provide a hook to run print statements proving I can extend the user manager. But from here it should be possible to extend it and track user presence as I want. If I was lazy (I am) I could set a postgres field is_online and be done. A naive solution might not be bad until I have a reason to scale it.\r\n\r\nI agree adding yet another setting isn't ideal. If I think of a cleaner solution I'll let you know. All these overrides are doable but not ideal as I'd have to manually merge upstream changes into them.\r\n\r\nIf I was scaling - would I need to ensure only one instance of swampdragon with `periodic_callback` is running?"}}