Skip to content

Commit

Permalink
fix bug varint decode
Browse files Browse the repository at this point in the history
  • Loading branch information
alber committed Feb 17, 2023
1 parent 6181f0d commit 9f9e44d
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 20 deletions.
2 changes: 1 addition & 1 deletion cmd/connect/run.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
echo "打包完成"
docker run -v $(pwd)/:/app -p 8000:8000 -p 8002:8002 -p 8003:8003 alpine .//app/main
docker run -v $(pwd)/:/app -p 8000:8000 -p 8001:8001 -p 8002:8002 alpine .//app/main
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module gim
go 1.17

require (
github.com/alberliu/gn v1.10.0
github.com/alberliu/gn v1.13.0
github.com/gin-gonic/gin v1.7.7
github.com/go-redis/redis v6.15.9+incompatible
github.com/go-sql-driver/mysql v1.6.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/alberliu/gn v1.10.0 h1:BQcfgp1c8wc+AXvutImeJ5RAr7Lh/tc23vELJ3dgh10=
github.com/alberliu/gn v1.10.0/go.mod h1:Rm7O35H784ZsqxJr/3VcNgyHHfI7jf7GFTQ+o/fXAsg=
github.com/alberliu/gn v1.13.0 h1:Js+pLiMbOskmGEmMjRz9+K1Zd8Nr+B4C33WpyNFodMo=
github.com/alberliu/gn v1.13.0/go.mod h1:Rm7O35H784ZsqxJr/3VcNgyHHfI7jf7GFTQ+o/fXAsg=
github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
Expand Down
2 changes: 1 addition & 1 deletion internal/connect/conn.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ func (c *Conn) HandleMessage(bytes []byte) {
var input = new(pb.Input)
err := proto.Unmarshal(bytes, input)
if err != nil {
logger.Logger.Error("unmarshal error", zap.Error(err))
logger.Logger.Error("unmarshal error", zap.Error(err), zap.Int("len", len(bytes)))
return
}
logger.Logger.Debug("HandleMessage", zap.Any("input", input))
Expand Down
6 changes: 4 additions & 2 deletions internal/connect/tcp_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import (
"gim/pkg/rpc"
"time"

"github.com/alberliu/gn/codec"

"go.uber.org/zap"

"github.com/alberliu/gn"
Expand All @@ -20,8 +22,8 @@ func StartTCPServer(addr string) {

var err error
server, err = gn.NewServer(addr, &handler{},
gn.WithDecoder(gn.NewHeaderLenDecoder(2)),
gn.WithEncoder(gn.NewHeaderLenEncoder(2, 1024)),
gn.WithDecoder(codec.NewUvarintDecoder()),
gn.WithEncoder(codec.NewUvarintEncoder(1024)),
gn.WithReadBufferLen(256),
gn.WithTimeout(11*time.Minute),
gn.WithAcceptGNum(10),
Expand Down
6 changes: 4 additions & 2 deletions internal/logic/api/logic_ext_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import (
"testing"
"time"

"google.golang.org/protobuf/types/known/emptypb"

"google.golang.org/grpc"
"google.golang.org/grpc/metadata"
)
Expand Down Expand Up @@ -51,7 +53,7 @@ func TestLogicExtServer_SendMessageToFriend(t *testing.T) {
resp, err := getLogicExtClient().SendMessageToFriend(getCtx(),
&pb.SendMessageReq{
ReceiverId: 2,
Content: []byte("hahaha"),
Content: []byte("hahaha1000"),
SendTime: util.UnixMilliTime(time.Now()),
})
if err != nil {
Expand Down Expand Up @@ -103,7 +105,7 @@ func TestLogicExtServer_GetGroup(t *testing.T) {
}

func TestLogicExtServer_GetUserGroups(t *testing.T) {
resp, err := getLogicExtClient().GetGroups(getCtx(), &pb.Empty{})
resp, err := getLogicExtClient().GetGroups(getCtx(), &emptypb.Empty{})
if err != nil {
fmt.Println(err)
return
Expand Down
30 changes: 19 additions & 11 deletions test/tcp_conn/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,15 @@ import (
"net"
"time"

gim_util "github.com/alberliu/gn/util"
"github.com/alberliu/gn/codec"
jsoniter "github.com/json-iterator/go"
"google.golang.org/protobuf/proto"
)

var codecFactory = gim_util.NewHeaderLenCodecFactory(2, 65536)
var (
decoder = codec.NewUvarintDecoder()
encoder = codec.NewUvarintEncoder(1024)
)

func main() {
log.SetFlags(log.Lshortfile | log.LstdFlags)
Expand All @@ -30,11 +33,11 @@ func Json(i interface{}) string {
}

type TcpClient struct {
UserId int64
DeviceId int64
Seq int64
codec *gim_util.Codec
Conn net.Conn
UserId int64
DeviceId int64
Seq int64
Conn net.Conn
ReadBuffer *codec.Buffer
}

func (c *TcpClient) Output(pt pb.PackageType, requestId int64, message proto.Message) {
Expand All @@ -58,7 +61,7 @@ func (c *TcpClient) Output(pt pb.PackageType, requestId int64, message proto.Mes
return
}

_, err = c.Conn.Write(gim_util.Encode(inputByf))
err = encoder.EncodeToWriter(c.Conn, inputByf)
if err != nil {
log.Println(err)
}
Expand All @@ -71,8 +74,8 @@ func (c *TcpClient) Start() {
return
}

c.codec = codecFactory.NewCodec(connect)
c.Conn = connect
c.ReadBuffer = codec.NewBuffer(make([]byte, 65536))

c.SignIn()
c.SyncTrigger()
Expand All @@ -92,6 +95,7 @@ func (c *TcpClient) SignIn() {

func (c *TcpClient) SyncTrigger() {
c.Output(pb.PackageType_PT_SYNC, time.Now().UnixNano(), &pb.SyncInput{Seq: c.Seq})
log.Println("开始同步")
}

func (c *TcpClient) Heartbeat() {
Expand All @@ -103,13 +107,17 @@ func (c *TcpClient) Heartbeat() {

func (c *TcpClient) Receive() {
for {
bytes, err := c.codec.Read()
_, err := c.ReadBuffer.ReadFromReader(c.Conn)
if err != nil {
log.Println(err)
return
}

c.HandlePackage(bytes)
err = decoder.Decode(c.ReadBuffer, c.HandlePackage)
if err != nil {
log.Println(err)
return
}
}
}

Expand Down

0 comments on commit 9f9e44d

Please sign in to comment.