{"action":"created","issue":{"url":"https://api.github.com/repos/pubnub/open-chat-framework/issues/18","repository_url":"https://api.github.com/repos/pubnub/open-chat-framework","labels_url":"https://api.github.com/repos/pubnub/open-chat-framework/issues/18/labels{/name}","comments_url":"https://api.github.com/repos/pubnub/open-chat-framework/issues/18/comments","events_url":"https://api.github.com/repos/pubnub/open-chat-framework/issues/18/events","html_url":"https://github.com/pubnub/open-chat-framework/issues/18","id":186337282,"number":18,"title":"Define channel hierarchy","user":{"login":"ianjennings","id":318295,"avatar_url":"https://avatars.githubusercontent.com/u/318295?v=3","gravatar_id":"","url":"https://api.github.com/users/ianjennings","html_url":"https://github.com/ianjennings","followers_url":"https://api.github.com/users/ianjennings/followers","following_url":"https://api.github.com/users/ianjennings/following{/other_user}","gists_url":"https://api.github.com/users/ianjennings/gists{/gist_id}","starred_url":"https://api.github.com/users/ianjennings/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ianjennings/subscriptions","organizations_url":"https://api.github.com/users/ianjennings/orgs","repos_url":"https://api.github.com/users/ianjennings/repos","events_url":"https://api.github.com/users/ianjennings/events{/privacy}","received_events_url":"https://api.github.com/users/ianjennings/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-10-31T16:54:52Z","updated_at":"2016-11-01T17:50:51Z","closed_at":null,"body":"Now that we've generated some use cases, we're going to need a stronger networking pattern. This is my proposal:\r\n\r\n* ```global```\r\n    * Everything happens under a global channel (namespace).\r\n    * This is where all user state is held.\r\n    * This is where our original online list comes from\r\n* ```global:user:username```\r\n    * Every online user has an event feed they produce\r\n    * Nobody else can publish to this but the user\r\n    * PAM protected for publishing\r\n* ```global:private:username:username```\r\n    * Allows two (or more) users can talk to eachother\r\n    * Also known as private chat\r\n    * PAM protected to those users\r\n    * usernames are sorted alpha to be predictable\r\n* ```global:room:topic```\r\n    * Allows any number of users to talk to each other\r\n    * Also known as private chat\r\n\r\nThe class ```Chat``` in OCF framework should be a root class. \r\n\r\n* Class ```Global``` will extend ```Chat``` and include the user state.\r\n* Class ```Feed``` will extend ```Chat``` and include the PAM protection for one user\r\n* Class ```Private``` will extend ```Chat``` and include similar PAM protection\r\n* Class ```Room``` will extend ```Chat``` and use strings for channel names"},"comment":{"url":"https://api.github.com/repos/pubnub/open-chat-framework/issues/comments/257639179","html_url":"https://github.com/pubnub/open-chat-framework/issues/18#issuecomment-257639179","issue_url":"https://api.github.com/repos/pubnub/open-chat-framework/issues/18","id":257639179,"user":{"login":"stephenlb","id":45214,"avatar_url":"https://avatars.githubusercontent.com/u/45214?v=3","gravatar_id":"","url":"https://api.github.com/users/stephenlb","html_url":"https://github.com/stephenlb","followers_url":"https://api.github.com/users/stephenlb/followers","following_url":"https://api.github.com/users/stephenlb/following{/other_user}","gists_url":"https://api.github.com/users/stephenlb/gists{/gist_id}","starred_url":"https://api.github.com/users/stephenlb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephenlb/subscriptions","organizations_url":"https://api.github.com/users/stephenlb/orgs","repos_url":"https://api.github.com/users/stephenlb/repos","events_url":"https://api.github.com/users/stephenlb/events{/privacy}","received_events_url":"https://api.github.com/users/stephenlb/received_events","type":"User","site_admin":false},"created_at":"2016-11-01T17:50:51Z","updated_at":"2016-11-01T17:50:51Z","body":"`.`"}}
{"actor":{"display_login":"stephenlb"}}