File tree Expand file tree Collapse file tree 2 files changed +23
-7
lines changed
Expand file tree Collapse file tree 2 files changed +23
-7
lines changed Original file line number Diff line number Diff line change 44 "github.com/hyperf/roc"
55 "github.com/hyperf/roc/exception"
66 "github.com/hyperf/roc/formatter"
7- "github.com/hyperf/roc/log"
8- "go.uber.org/zap"
97 "net"
108)
119
@@ -22,7 +20,6 @@ func NewTcpServerHandler(callback JsonRPCHandler) Handler {
2220 var response any
2321
2422 if err != nil {
25- log .Logger ().Error ("RPC_UnSerialize" , zap .String ("body" , body ))
2623 response = & formatter.JsonRPCErrorResponse [any ]{
2724 Id : route .Id ,
2825 Error : & formatter.JsonRPCError {
Original file line number Diff line number Diff line change @@ -52,11 +52,31 @@ func (s *TcpServer) Start() {
5252 }
5353}
5454
55+ func (s * TcpServer ) readAll (conn net.Conn , length int ) ([]byte , error ) {
56+ ret := make ([]byte , length )
57+ recvLength := 0
58+ var l int
59+ var err error
60+ for {
61+ bt := make ([]byte , length - recvLength )
62+ l , err = conn .Read (bt )
63+ if err != nil {
64+ return nil , err
65+ }
66+
67+ recvLength += l
68+ ret = append (ret , bt ... )
69+ if recvLength >= length {
70+ return ret , nil
71+ }
72+ }
73+
74+ }
75+
5576func (s * TcpServer ) handle (conn net.Conn ) {
5677 defer conn .Close ()
5778 for {
58- buf := make ([]byte , 4 )
59- _ , err := conn .Read (buf )
79+ buf , err := s .readAll (conn , 4 )
6080 if err != nil {
6181 if err != io .EOF {
6282 log .Logger ().Error ("Error reading" , zap .Error (err ))
@@ -65,8 +85,7 @@ func (s *TcpServer) handle(conn net.Conn) {
6585 }
6686
6787 len32 := binary .BigEndian .Uint32 (buf )
68- buf = make ([]byte , len32 )
69- _ , err = conn .Read (buf )
88+ buf , err = s .readAll (conn , int (len32 ))
7089 if err != nil {
7190 if err != io .EOF {
7291 log .Logger ().Error ("Error reading" , zap .Error (err ))
You can’t perform that action at this time.
0 commit comments