html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/ACEmulator/ACE/pull/1785#issuecomment-485771781,https://api.github.com/repos/ACEmulator/ACE/issues/1785,485771781,MDEyOklzc3VlQ29tbWVudDQ4NTc3MTc4MQ==,10608427,2019-04-23T11:56:37Z,2019-04-23T11:56:37Z,MEMBER,"Can you please describe to us what this PR accomplishes? What does it fix/resolve? What does it improve? Does it help you with further architecture plans? If so, how?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,435988213 https://github.com/ACEmulator/ACE/pull/1785#issuecomment-485782183,https://api.github.com/repos/ACEmulator/ACE/issues/1785,485782183,MDEyOklzc3VlQ29tbWVudDQ4NTc4MjE4Mw==,3317737,2019-04-23T12:30:17Z,2019-04-23T12:36:05Z,COLLABORATOR,"> > > I mentioned this in DM's, but you can make it a lot easier for us to review this PR by creating a dummy Session.Network object that simply relays EnqueueSend down to the base session. > > It would leave the vast majority of these files unchanged so we can review the actual changes more clearly. > > Then, after the architecture change is approved and merged, the wrapper class can be removed. I'll see if it can't revert the reduction and do it right. Good call!","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,435988213 https://github.com/ACEmulator/ACE/pull/1785#issuecomment-485838415,https://api.github.com/repos/ACEmulator/ACE/issues/1785,485838415,MDEyOklzc3VlQ29tbWVudDQ4NTgzODQxNQ==,10608427,2019-04-23T14:54:34Z,2019-04-23T14:54:34Z,MEMBER,"I'm starting to go over your checklist, thank you for providing that. The first thing I notice is the combination of Session and NetworkSession. I was aware that you had done this, which is why I suggested the wrapper, but I was curious as to why. The reason for combining class does not apply here. Session and NetworkSession should be kept functionally separate. NetworkSession is designed to handle low level packet work. This includes: - Packet processing - Packet transmission Session is designed to handle higher level session management. This includes: - Dispatching received packets (through to NetworkSession) - Processing packet transmit requests (through to NetworkSession) - Managing server/client/world states - Managing the session:player relationship","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,435988213 https://github.com/ACEmulator/ACE/pull/1785#issuecomment-485898630,https://api.github.com/repos/ACEmulator/ACE/issues/1785,485898630,MDEyOklzc3VlQ29tbWVudDQ4NTg5ODYzMA==,3317737,2019-04-23T17:27:37Z,2019-04-23T17:42:50Z,COLLABORATOR,"> > > I'm starting to go over your checklist, thank you for providing that. > > The first thing I notice is the combination of Session and NetworkSession. I was aware that you had done this, which is why I suggested the wrapper, but I was curious as to why. > > The reason for combining class does not apply here. Session and NetworkSession should be kept functionally separate. > > NetworkSession is designed to handle low level packet work. This includes: > > * Packet processing > > * Packet transmission > > > Session is designed to handle higher level session management. This includes: > > * Dispatching received packets (through to NetworkSession) > > * Processing packet transmit requests (through to NetworkSession) > > * Managing server/client/world states > > * Managing the session:player relationship i'll revert that reduction, there's one piece around all that, Network Management, manages the session collection, does session discrimination, and does low level network I/O, not sure how much that deviates from ""the pattern"". ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,435988213