Compare commits
1 commit
a114637e54
...
12f64696df
Author | SHA1 | Date | |
---|---|---|---|
12f64696df |
1 changed files with 7 additions and 2 deletions
|
@ -12,18 +12,20 @@ import (
|
||||||
// SendUnary initializes communication session by RPC info, performs unary RPC
|
// SendUnary initializes communication session by RPC info, performs unary RPC
|
||||||
// and closes the session.
|
// and closes the session.
|
||||||
func SendUnary(cli *Client, info common.CallMethodInfo, req, resp message.Message, opts ...CallOption) error {
|
func SendUnary(cli *Client, info common.CallMethodInfo, req, resp message.Message, opts ...CallOption) error {
|
||||||
rw, err := cli.Init(info, opts...)
|
rw, err := cli.initInternal(info, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = rw.WriteMessage(req)
|
err = rw.WriteMessage(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
rw.cancel()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = rw.ReadMessage(resp)
|
err = rw.ReadMessage(resp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
rw.cancel()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +57,7 @@ func (c *clientStreamWriterCloser) Close() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = c.sw.ReadMessage(c.resp); err != nil {
|
if err = c.sw.ReadMessage(c.resp); err != nil {
|
||||||
|
c.sw.cancel()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +88,7 @@ type MessageReaderCloser interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
type serverStreamReaderCloser struct {
|
type serverStreamReaderCloser struct {
|
||||||
rw MessageReadWriter
|
rw *streamWrapper
|
||||||
|
|
||||||
once sync.Once
|
once sync.Once
|
||||||
|
|
||||||
|
@ -100,11 +103,13 @@ func (s *serverStreamReaderCloser) ReadMessage(msg message.Message) error {
|
||||||
})
|
})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
s.rw.cancel()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = s.rw.ReadMessage(msg)
|
err = s.rw.ReadMessage(msg)
|
||||||
if !errors.Is(err, io.EOF) {
|
if !errors.Is(err, io.EOF) {
|
||||||
|
s.rw.cancel()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue