add SendWaitObj Fn

This commit is contained in:
兔子 2022-01-07 15:07:24 +08:00
parent 555bc3653e
commit 3964cd05b0
Signed by: b612
GPG Key ID: 481225A74DEB62A1
4 changed files with 22 additions and 5 deletions

View File

@ -273,7 +273,7 @@ func (c *ClientCommon) loadMessage() {
return return
} }
message := Message{ message := Message{
ServerConn: c, ServerConn: c,
TransferMsg: msg.(TransferMsg), TransferMsg: msg.(TransferMsg),
NetType: NET_CLIENT, NetType: NET_CLIENT,
} }
@ -469,6 +469,14 @@ func (c *ClientCommon) SendWait(key string, value MsgVal, timeout time.Duration)
}, timeout) }, timeout)
} }
func (c *ClientCommon) SendWaitObj(key string, value interface{}, timeout time.Duration) (Message, error) {
data, err := c.sequenceEn(value)
if err != nil {
return Message{}, err
}
return c.SendWait(key, data, timeout)
}
func (c *ClientCommon) Reply(m Message, value MsgVal) error { func (c *ClientCommon) Reply(m Message, value MsgVal) error {
return m.Reply(value) return m.Reply(value)
} }

View File

@ -12,6 +12,7 @@ type Client interface {
sendWait(msg TransferMsg, timeout time.Duration) (Message, error) sendWait(msg TransferMsg, timeout time.Duration) (Message, error)
Send(key string, value MsgVal) error Send(key string, value MsgVal) error
SendWait(key string, value MsgVal, timeout time.Duration) (Message, error) SendWait(key string, value MsgVal, timeout time.Duration) (Message, error)
SendWaitObj(key string, value interface{}, timeout time.Duration) (Message, error)
SendCtx(ctx context.Context, key string, value MsgVal) (Message, error) SendCtx(ctx context.Context, key string, value MsgVal) (Message, error)
Reply(m Message, value MsgVal) error Reply(m Message, value MsgVal) error
ExchangeKey(newKey []byte) error ExchangeKey(newKey []byte) error

View File

@ -449,6 +449,14 @@ func (s *ServerCommon) SendWait(c *ClientConn, key string, value MsgVal, timeout
}, timeout) }, timeout)
} }
func (s *ServerCommon) SendWaitObj(c *ClientConn, key string, value interface{}, timeout time.Duration) (Message, error) {
data, err := s.sequenceEn(value)
if err != nil {
return Message{}, err
}
return s.SendWait(c, key, data, timeout)
}
func (s *ServerCommon) SendObjCtx(ctx context.Context, c *ClientConn, key string, val interface{}) (Message, error) { func (s *ServerCommon) SendObjCtx(ctx context.Context, c *ClientConn, key string, val interface{}) (Message, error) {
data, err := s.sequenceEn(val) data, err := s.sequenceEn(val)
if err != nil { if err != nil {

View File

@ -17,6 +17,7 @@ type Server interface {
SendObj(c *ClientConn, key string, val interface{}) error SendObj(c *ClientConn, key string, val interface{}) error
Send(c *ClientConn, key string, value MsgVal) error Send(c *ClientConn, key string, value MsgVal) error
SendWait(c *ClientConn, key string, value MsgVal, timeout time.Duration) (Message, error) SendWait(c *ClientConn, key string, value MsgVal, timeout time.Duration) (Message, error)
SendWaitObj(c *ClientConn, key string, value interface{}, timeout time.Duration) (Message, error)
SendCtx(ctx context.Context, c *ClientConn, key string, value MsgVal) (Message, error) SendCtx(ctx context.Context, c *ClientConn, key string, value MsgVal) (Message, error)
Reply(m Message, value MsgVal) error Reply(m Message, value MsgVal) error
pushMessage([]byte, string) pushMessage([]byte, string)
@ -35,12 +36,11 @@ type Server interface {
GetClientLists() []*ClientConn GetClientLists() []*ClientConn
GetClientAddrs() []net.Addr GetClientAddrs() []net.Addr
GetSequenceEn() func(interface{}) ([]byte,error) GetSequenceEn() func(interface{}) ([]byte, error)
SetSequenceEn(func(interface{}) ([]byte,error)) SetSequenceEn(func(interface{}) ([]byte, error))
GetSequenceDe() func([]byte) (interface{}, error) GetSequenceDe() func([]byte) (interface{}, error)
SetSequenceDe(func([]byte) (interface{}, error)) SetSequenceDe(func([]byte) (interface{}, error))
HeartbeatTimeoutSec()int64 HeartbeatTimeoutSec() int64
SetHeartbeatTimeoutSec(int64) SetHeartbeatTimeoutSec(int64)
} }