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  }