github.com/gogf/gf@v1.16.9/.example/net/gtcp/pkg_operations/common/funcs/funcs.go (about) 1 package funcs 2 3 import ( 4 "encoding/json" 5 "fmt" 6 7 "github.com/gogf/gf/.example/net/gtcp/pkg_operations/common/types" 8 "github.com/gogf/gf/net/gtcp" 9 ) 10 11 // 自定义格式发送消息包 12 func SendPkg(conn *gtcp.Conn, act string, data ...string) error { 13 s := "" 14 if len(data) > 0 { 15 s = data[0] 16 } 17 msg, err := json.Marshal(types.Msg{ 18 Act: act, 19 Data: s, 20 }) 21 if err != nil { 22 panic(err) 23 } 24 return conn.SendPkg(msg) 25 } 26 27 // 自定义格式接收消息包 28 func RecvPkg(conn *gtcp.Conn) (msg *types.Msg, err error) { 29 if data, err := conn.RecvPkg(); err != nil { 30 return nil, err 31 } else { 32 msg = &types.Msg{} 33 err = json.Unmarshal(data, msg) 34 if err != nil { 35 return nil, fmt.Errorf("invalid package structure: %s", err.Error()) 36 } 37 return msg, err 38 } 39 }