ing
This commit is contained in:
parent
cb96187314
commit
ab60b6ccda
|
@ -42,8 +42,11 @@ func (c *client) Start() error {
|
|||
}
|
||||
c.stopChan = make(chan struct{})
|
||||
|
||||
c.clientHandler.OnStart()
|
||||
|
||||
c.stopWg.Add(1)
|
||||
go runClient(c)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -54,6 +57,7 @@ func (c *client) Stop() {
|
|||
close(c.stopChan)
|
||||
c.stopWg.Wait()
|
||||
c.stopChan = nil
|
||||
c.clientHandler.OnStop()
|
||||
}
|
||||
|
||||
func runClient(c *client) {
|
||||
|
|
|
@ -6,6 +6,9 @@ import (
|
|||
)
|
||||
|
||||
type ClientHandler interface {
|
||||
OnStart()
|
||||
OnStop()
|
||||
|
||||
Dial() (conn io.ReadWriteCloser, err error)
|
||||
OnHandshake(remoteAddr string, rwc io.ReadWriteCloser) error
|
||||
Handle(rwc io.ReadWriteCloser, stopChan chan struct{})
|
||||
|
|
|
@ -42,6 +42,14 @@ type ClientHandlers struct {
|
|||
KeepAlivePeriod time.Duration
|
||||
}
|
||||
|
||||
func (ch *ClientHandlers) OnStart() {
|
||||
// no op
|
||||
}
|
||||
|
||||
func (ch *ClientHandlers) OnStop() {
|
||||
// no op
|
||||
}
|
||||
|
||||
func (ch *ClientHandlers) Dial() (conn io.ReadWriteCloser, err error) {
|
||||
return nil, errors.New("Client: Handler method[Dial] of Client is not implement")
|
||||
}
|
||||
|
|
|
@ -15,6 +15,6 @@ func (sh *ServerHandlers) Listen() (l net.Listener, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func (sh *ServerHandlers) Stopped() {
|
||||
func (sh *ServerHandlers) OnStop() {
|
||||
os.Remove(sh.Addr)
|
||||
}
|
||||
|
|
|
@ -11,6 +11,6 @@ func (sh *ServerHandlers) Listen() (net.Listener, error) {
|
|||
return npipe.Listen(s.path)
|
||||
}
|
||||
|
||||
func (sh *ServerHandlers) Stopped() {
|
||||
func (sh *ServerHandlers) OnStop() {
|
||||
|
||||
}
|
||||
|
|
|
@ -50,8 +50,11 @@ func (s *server) Start() error {
|
|||
return err
|
||||
}
|
||||
|
||||
s.serverHandler.OnStart()
|
||||
|
||||
s.stopWg.Add(1)
|
||||
go runServer(s)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -62,7 +65,7 @@ func (s *server) Stop() {
|
|||
close(s.stopChan)
|
||||
s.stopWg.Wait()
|
||||
s.stopChan = nil
|
||||
s.serverHandler.OnStopped()
|
||||
s.serverHandler.OnStop()
|
||||
}
|
||||
|
||||
func (s *server) Serve() error {
|
||||
|
|
|
@ -6,10 +6,12 @@ import (
|
|||
)
|
||||
|
||||
type ServerHandler interface {
|
||||
OnStart()
|
||||
OnStop()
|
||||
|
||||
Listen() (net.Listener, error)
|
||||
OnHandshake(remoteAddr string, rwc io.ReadWriteCloser) error
|
||||
Handle(remoteAddr string, rwc io.ReadWriteCloser, stopChan chan struct{})
|
||||
OnStopped()
|
||||
|
||||
IsClientDisconnect(err error) bool
|
||||
|
||||
|
|
|
@ -23,6 +23,14 @@ type ServerHandlers struct {
|
|||
KeepAlivePeriod time.Duration
|
||||
}
|
||||
|
||||
func (sh *ServerHandlers) OnStart() {
|
||||
// no op
|
||||
}
|
||||
|
||||
func (sh *ServerHandlers) OnStop() {
|
||||
// no op
|
||||
}
|
||||
|
||||
func (sh *ServerHandlers) Listen() (net.Listener, error) {
|
||||
return nil, errors.New("Server: Handler method[Listen] of Server is not implement")
|
||||
}
|
||||
|
@ -39,10 +47,6 @@ func (sh *ServerHandlers) IsClientDisconnect(err error) bool {
|
|||
return err == io.ErrUnexpectedEOF || err == io.EOF
|
||||
}
|
||||
|
||||
func (sh *ServerHandlers) OnStopped() {
|
||||
|
||||
}
|
||||
|
||||
func (sh *ServerHandlers) GetAddr() string {
|
||||
return sh.Addr
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user