Skip to content

Commit 08ad37b

Browse files
refactor: rename channel fields and fix example
1 parent 7a2db09 commit 08ad37b

File tree

7 files changed

+75
-75
lines changed

7 files changed

+75
-75
lines changed

benchmarks_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func Benchmark_NoHandler(b *testing.B) {
2222
go s.Run("127.0.0.1:0") // nolint
2323
defer s.Stop() // nolint
2424

25-
<-s.accepting
25+
<-s.acceptingC
2626

2727
// client
2828
client, err := net.Dial("tcp", s.Listener.Addr().String())
@@ -46,7 +46,7 @@ func Benchmark_OneHandler(b *testing.B) {
4646
go s.Run("127.0.0.1:0") // nolint
4747
defer s.Stop() // nolint
4848

49-
<-s.accepting
49+
<-s.acceptingC
5050

5151
// client
5252
client, err := net.Dial("tcp", s.Listener.Addr().String())

internal/examples/tcp/custom_packet/server/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func init() {
1919
}
2020

2121
func main() {
22-
easytcp._log = log
22+
easytcp.SetLogger(log)
2323

2424
s := easytcp.NewServer(&easytcp.ServerOption{
2525
// specify codec and packer

router_context_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ func Test_routeContext_Send(t *testing.T) {
149149
ctx := newTestContext(sess, nil)
150150
ctx.SetResponseMessage(NewMessage(1, []byte("test")))
151151
go ctx.Send()
152-
ctx2 := <-sess.respQueue
152+
ctx2 := <-sess.respStream
153153
assert.Equal(t, ctx, ctx2)
154154
})
155155
}
@@ -161,7 +161,7 @@ func Test_routeContext_SendTo(t *testing.T) {
161161
ctx := newTestContext(sess1, nil)
162162
ctx.SetResponseMessage(NewMessage(1, []byte("test")))
163163
go ctx.SendTo(sess2)
164-
ctx2 := <-sess2.respQueue
164+
ctx2 := <-sess2.respStream
165165
assert.Equal(t, ctx, ctx2)
166166
})
167167
}

server.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ type Server struct {
3333
respQueueSize int
3434
router *Router
3535
printRoutes bool
36-
accepting chan struct{}
37-
stopped chan struct{}
36+
acceptingC chan struct{}
37+
stoppedC chan struct{}
3838
asyncRouter bool
3939
}
4040

@@ -79,8 +79,8 @@ func NewServer(opt *ServerOption) *Server {
7979
Codec: opt.Codec,
8080
printRoutes: !opt.DoNotPrintRoutes,
8181
router: newRouter(),
82-
accepting: make(chan struct{}),
83-
stopped: make(chan struct{}),
82+
acceptingC: make(chan struct{}),
83+
stoppedC: make(chan struct{}),
8484
asyncRouter: opt.AsyncRouter,
8585
}
8686
}
@@ -116,7 +116,7 @@ func (s *Server) RunTLS(addr string, config *tls.Config) error {
116116
// acceptLoop accepts TCP connections in a loop, and handle connections in goroutines.
117117
// Returns error when error occurred.
118118
func (s *Server) acceptLoop() error {
119-
close(s.accepting)
119+
close(s.acceptingC)
120120
for {
121121
if s.isStopped() {
122122
_log.Tracef("server accept loop stopped")
@@ -171,25 +171,25 @@ func (s *Server) handleConn(conn net.Conn) {
171171
if s.OnSessionCreate != nil {
172172
s.OnSessionCreate(sess)
173173
}
174-
close(sess.afterCreateHook)
174+
close(sess.afterCreateHookC)
175175

176176
go sess.readInbound(s.router, s.readTimeout) // start reading message packet from connection.
177177
go sess.writeOutbound(s.writeTimeout) // start writing message packet to connection.
178178

179179
select {
180-
case <-sess.closed: // wait for session finished.
181-
case <-s.stopped: // or the server is stopped.
180+
case <-sess.closedC: // wait for session finished.
181+
case <-s.stoppedC: // or the server is stopped.
182182
}
183183

184184
if s.OnSessionClose != nil {
185185
s.OnSessionClose(sess)
186186
}
187-
close(sess.afterCloseHook)
187+
close(sess.afterCloseHookC)
188188
}
189189

190190
// Stop stops server. Closing Listener and all connections.
191191
func (s *Server) Stop() error {
192-
close(s.stopped)
192+
close(s.stoppedC)
193193
return s.Listener.Close()
194194
}
195195

@@ -210,7 +210,7 @@ func (s *Server) NotFoundHandler(handler HandlerFunc) {
210210

211211
func (s *Server) isStopped() bool {
212212
select {
213-
case <-s.stopped:
213+
case <-s.stoppedC:
214214
return true
215215
default:
216216
return false

server_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ func TestNewServer(t *testing.T) {
1717
Codec: &JsonCodec{},
1818
RespQueueSize: -1,
1919
})
20-
assert.NotNil(t, s.accepting)
20+
assert.NotNil(t, s.acceptingC)
2121
assert.IsType(t, s.Packer, NewDefaultPacker())
2222
assert.Equal(t, s.Codec, &JsonCodec{})
2323
assert.Equal(t, s.respQueueSize, DefaultRespQueueSize)
24-
assert.NotNil(t, s.accepting)
25-
assert.NotNil(t, s.stopped)
24+
assert.NotNil(t, s.acceptingC)
25+
assert.NotNil(t, s.stoppedC)
2626
}
2727

2828
func TestServer_Serve(t *testing.T) {
@@ -34,7 +34,7 @@ func TestServer_Serve(t *testing.T) {
3434
assert.ErrorIs(t, server.Serve(lis), ErrServerStopped)
3535
close(done)
3636
}()
37-
<-server.accepting
37+
<-server.acceptingC
3838
time.Sleep(time.Millisecond * 5)
3939
err = server.Stop()
4040
assert.NoError(t, err)
@@ -48,7 +48,7 @@ func TestServer_Run(t *testing.T) {
4848
assert.ErrorIs(t, server.Run("localhost:0"), ErrServerStopped)
4949
close(done)
5050
}()
51-
<-server.accepting
51+
<-server.acceptingC
5252
time.Sleep(time.Millisecond * 5)
5353
err := server.Stop()
5454
assert.NoError(t, err)
@@ -69,7 +69,7 @@ func TestServer_RunTLS(t *testing.T) {
6969
assert.ErrorIs(t, server.RunTLS("localhost:0", cfg), ErrServerStopped)
7070
close(done)
7171
}()
72-
<-server.accepting
72+
<-server.acceptingC
7373
time.Sleep(time.Millisecond * 5)
7474
err = server.Stop()
7575
assert.NoError(t, err)
@@ -92,7 +92,7 @@ func TestServer_acceptLoop(t *testing.T) {
9292
assert.Error(t, err)
9393
}()
9494

95-
<-server.accepting
95+
<-server.acceptingC
9696

9797
// client
9898
cli, err := net.Dial("tcp", lis.Addr().String())
@@ -127,7 +127,7 @@ func TestServer_Stop(t *testing.T) {
127127
assert.Equal(t, err, ErrServerStopped)
128128
}()
129129

130-
<-server.accepting
130+
<-server.acceptingC
131131

132132
// client
133133
cli, err := net.Dial("tcp", server.Listener.Addr().String())
@@ -197,7 +197,7 @@ func TestServer_handleConn(t *testing.T) {
197197
}()
198198
defer func() { assert.NoError(t, server.Stop()) }()
199199

200-
<-server.accepting
200+
<-server.acceptingC
201201

202202
// client
203203
cli, err := net.Dial("tcp", server.Listener.Addr().String())
@@ -235,7 +235,7 @@ func TestServer_NotFoundHandler(t *testing.T) {
235235
assert.Equal(t, err, ErrServerStopped)
236236
}()
237237

238-
<-server.accepting
238+
<-server.acceptingC
239239

240240
// client
241241
cli, err := net.Dial("tcp", server.Listener.Addr().String())
@@ -276,7 +276,7 @@ func TestServer_SessionHooks(t *testing.T) {
276276
}()
277277
defer func() { assert.NoError(t, server.Stop()) }()
278278

279-
<-server.accepting
279+
<-server.acceptingC
280280

281281
// client
282282
cli, err := net.Dial("tcp", server.Listener.Addr().String())

session.go

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ type Session interface {
1717
// SetID sets current session's id.
1818
SetID(id interface{})
1919

20-
// Send sends the ctx to the respQueue.
20+
// Send sends the ctx to the respStream.
2121
Send(ctx Context) bool
2222

2323
// Codec returns the codec, can be nil.
@@ -40,17 +40,17 @@ type Session interface {
4040
}
4141

4242
type session struct {
43-
id interface{} // session's ID.
44-
conn net.Conn // tcp connection
45-
closed chan struct{} // to close()
46-
afterCreateHook chan struct{} // to close after session's on-create hook triggered
47-
afterCloseHook chan struct{} // to close after session's on-close hook triggered
48-
closeOnce sync.Once // ensure one session only close once
49-
respQueue chan Context // response queue channel, pushed in Send() and popped in writeOutbound()
50-
packer Packer // to pack and unpack message
51-
codec Codec // encode/decode message data
52-
ctxPool sync.Pool // router context pool
53-
asyncRouter bool // calls router HandlerFunc in a goroutine if false
43+
id interface{} // session's ID.
44+
conn net.Conn // tcp connection
45+
closedC chan struct{} // to close when read/write loop stopped
46+
closeOnce sync.Once // ensure one session only close once
47+
afterCreateHookC chan struct{} // to close after session's on-create hook triggered
48+
afterCloseHookC chan struct{} // to close after session's on-close hook triggered
49+
respStream chan Context // response queue channel, pushed in Send() and popped in writeOutbound()
50+
packer Packer // to pack and unpack message
51+
codec Codec // encode/decode message data
52+
ctxPool sync.Pool // router context pool
53+
asyncRouter bool // calls router HandlerFunc in a goroutine if false
5454
}
5555

5656
// sessionOption is the extra options for session.
@@ -67,16 +67,16 @@ type sessionOption struct {
6767
// Returns a session pointer.
6868
func newSession(conn net.Conn, opt *sessionOption) *session {
6969
return &session{
70-
id: uuid.NewString(), // use uuid as default
71-
conn: conn,
72-
closed: make(chan struct{}),
73-
afterCreateHook: make(chan struct{}),
74-
afterCloseHook: make(chan struct{}),
75-
respQueue: make(chan Context, opt.respQueueSize),
76-
packer: opt.Packer,
77-
codec: opt.Codec,
78-
ctxPool: sync.Pool{New: func() interface{} { return newContext() }},
79-
asyncRouter: opt.asyncRouter,
70+
id: uuid.NewString(), // use uuid as default
71+
conn: conn,
72+
closedC: make(chan struct{}),
73+
afterCreateHookC: make(chan struct{}),
74+
afterCloseHookC: make(chan struct{}),
75+
respStream: make(chan Context, opt.respQueueSize),
76+
packer: opt.Packer,
77+
codec: opt.Codec,
78+
ctxPool: sync.Pool{New: func() interface{} { return newContext() }},
79+
asyncRouter: opt.asyncRouter,
8080
}
8181
}
8282

@@ -91,15 +91,15 @@ func (s *session) SetID(id interface{}) {
9191
s.id = id
9292
}
9393

94-
// Send pushes response message to respQueue.
94+
// Send pushes response message to respStream.
9595
// Returns false if session is closed or ctx is done.
9696
func (s *session) Send(ctx Context) (ok bool) {
9797
select {
9898
case <-ctx.Done():
9999
return false
100-
case <-s.closed:
100+
case <-s.closedC:
101101
return false
102-
case s.respQueue <- ctx:
102+
case s.respStream <- ctx:
103103
return true
104104
}
105105
}
@@ -112,17 +112,17 @@ func (s *session) Codec() Codec {
112112
// Close closes the session, but doesn't close the connection.
113113
// The connection will be closed in the server once the session's closed.
114114
func (s *session) Close() {
115-
s.closeOnce.Do(func() { close(s.closed) })
115+
s.closeOnce.Do(func() { close(s.closedC) })
116116
}
117117

118118
// AfterCreateHook blocks until session's on-create hook triggered.
119119
func (s *session) AfterCreateHook() <-chan struct{} {
120-
return s.afterCreateHook
120+
return s.afterCreateHookC
121121
}
122122

123123
// AfterCloseHook blocks until session's on-close hook triggered.
124124
func (s *session) AfterCloseHook() <-chan struct{} {
125-
return s.afterCloseHook
125+
return s.afterCloseHookC
126126
}
127127

128128
// AllocateContext gets a Context from pool and reset all but session.
@@ -144,7 +144,7 @@ func (s *session) Conn() net.Conn {
144144
func (s *session) readInbound(router *Router, timeout time.Duration) {
145145
for {
146146
select {
147-
case <-s.closed:
147+
case <-s.closedC:
148148
return
149149
default:
150150
}
@@ -184,16 +184,16 @@ func (s *session) handleReq(router *Router, reqMsg *Message) {
184184
s.Send(ctx)
185185
}
186186

187-
// writeOutbound fetches message from respQueue channel and writes to TCP connection in a loop.
187+
// writeOutbound fetches message from respStream channel and writes to TCP connection in a loop.
188188
// Parameter writeTimeout specified the connection writing timeout.
189189
// The loop breaks if errors occurred, or the session is closed.
190190
func (s *session) writeOutbound(writeTimeout time.Duration) {
191191
for {
192192
var ctx Context
193193
select {
194-
case <-s.closed:
194+
case <-s.closedC:
195195
return
196-
case ctx = <-s.respQueue:
196+
case ctx = <-s.respStream:
197197
}
198198

199199
outboundBytes, err := s.packResponse(ctx)

0 commit comments

Comments
 (0)