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"
79 "net"
810)
911
@@ -16,28 +18,40 @@ func NewTcpServerHandler(callback JsonRPCHandler) Handler {
1618 serializer := server .Serializer
1719 packer := server .Packer
1820
19- serializer .UnSerialize (body , route )
20-
21- ret , e := callback (route , packet , server )
21+ err := serializer .UnSerialize (body , route )
2222 var response any
23- if e != nil {
23+
24+ if err != nil {
25+ log .Logger ().Error ("RPC_UnSerialize" , zap .String ("body" , body ))
2426 response = & formatter.JsonRPCErrorResponse [any ]{
2527 Id : route .Id ,
2628 Error : & formatter.JsonRPCError {
27- Code : e . GetCode () ,
28- Message : e . GetMessage (),
29+ Code : exception . SERVER_ERROR ,
30+ Message : err . Error (),
2931 },
3032 Context : nil ,
3133 }
3234 } else {
33- response = & formatter.JsonRPCResponse [any , any ]{
34- Id : route .Id ,
35- Result : ret ,
36- Context : nil ,
35+ ret , e := callback (route , packet , server )
36+ if e != nil {
37+ response = & formatter.JsonRPCErrorResponse [any ]{
38+ Id : route .Id ,
39+ Error : & formatter.JsonRPCError {
40+ Code : e .GetCode (),
41+ Message : e .GetMessage (),
42+ },
43+ Context : nil ,
44+ }
45+ } else {
46+ response = & formatter.JsonRPCResponse [any , any ]{
47+ Id : route .Id ,
48+ Result : ret ,
49+ Context : nil ,
50+ }
3751 }
3852 }
3953
40- serializerd , err := serializer .Serialize (response )
54+ serialized , err := serializer .Serialize (response )
4155 if err != nil {
4256 response = & formatter.JsonRPCErrorResponse [any ]{
4357 Id : route .Id ,
@@ -47,14 +61,14 @@ func NewTcpServerHandler(callback JsonRPCHandler) Handler {
4761 Context : nil ,
4862 }
4963
50- serializerd , err = serializer .Serialize (response )
64+ serialized , err = serializer .Serialize (response )
5165 if err != nil {
5266 conn .Close ()
5367 return
5468 }
5569 }
5670
57- bt := packer .Pack (roc .NewPacket (packet .GetId (), serializerd ))
71+ bt := packer .Pack (roc .NewPacket (packet .GetId (), serialized ))
5872
5973 conn .Write (bt )
6074 }
0 commit comments