> 5 use err instead of nerr in session.go:(Session)handlePackage:defer:OnError
>
> 6 version: 0.2.07
- 2016/08/25
> 1 move close done to once clause in server.go:(Server)stop
>
> 2 rename reqQ to rQ which means read queue and its relative params
>
> 3 rename rspQ to wQ which means write queue and its relative params
>
> 4 rename reqPkg to inPkg in function session.go:(Session)handleLoop
>
> 5 rename rspPkg to outPkg in function session.go:(Session)handleLoop
>
> 6 version: 0.2.06
- 2016/08/24
> 1 delete session.go:Session:wg(atomic.WaitGroup). Add session.go:Session:grNum instead to prevent from (Session)Close() block on session.go:Session:wg.Wait()
>
> 2 add once for session.go:Session:done(chan struct{})
>
> 3 version: 0.2.05
- 2016/08/23
> 1 do not consider empty package as a error in (Session)handlePackage
>
> 2 version: 0.2.04
- 2016/08/22
> 1 rename (Session)OnIdle to (Session)OnCron
>
> 2 rewrite server.go: add Server{done, wg}
>
> 3 add utils.go
>
> 4 version: 0.2.03
- 2016/08/21
> 1 add name for Session
>
> 2 add OnError for Codec
- 2016/08/18
> 1 delete last clause of handleRead
>
> 2 add reqQ handle case in last clause of handleLoop
>
> 3 add conditon check in (*Session)RunEventLoop()
> DESC : a asynchronous network I/O library in golang. In getty there are two goroutines in one connection(session), one handle network read buffer tcp stream, the other handle logic process and write response into network write buffer. If your logic process may take a long time, you should start a new logic process goroutine by yourself in (Codec):OnMessage. Getty is based on "ngo" whose author is sanbit(https://github.com/sanbit).
> 5 use err instead of nerr in session.go:(Session)handlePackage:defer:OnError
>
> 6 version: 0.2.07
- 2016/08/25
> 1 move close done to once clause in server.go:(Server)stop
>
> 2 rename reqQ to rQ which means read queue and its relative params
>
> 3 rename rspQ to wQ which means write queue and its relative params
>
> 4 rename reqPkg to inPkg in function session.go:(Session)handleLoop
>
> 5 rename rspPkg to outPkg in function session.go:(Session)handleLoop
>
> 6 version: 0.2.06
- 2016/08/24
> 1 delete session.go:Session:wg(atomic.WaitGroup). Add session.go:Session:grNum instead to prevent from (Session)Close() block on session.go:Session:wg.Wait()
>
> 2 add once for session.go:Session:done(chan struct{})
>
> 3 version: 0.2.05
- 2016/08/23
> 1 do not consider empty package as a error in (Session)handlePackage
>
> 2 version: 0.2.04
- 2016/08/22
> 1 rename (Session)OnIdle to (Session)OnCron
>
> 2 rewrite server.go: add Server{done, wg}
>
> 3 add utils.go
>
> 4 version: 0.2.03
- 2016/08/21
> 1 add name for Session
>
> 2 add OnError for Codec
- 2016/08/18
> 1 delete last clause of handleRead
>
> 2 add reqQ handle case in last clause of handleLoop
>
> 3 add conditon check in (*Session)RunEventLoop()