Git Product home page Git Product logo

Comments (3)

wongoo avatar wongoo commented on June 2, 2024

agree

from dubbo-go-hessian2.

gaoxinge avatar gaoxinge commented on June 2, 2024

写了一个简单的测试:

// hessian2/dubbo_test.go
package hessian

import (
	"bytes"
	"encoding/binary"
	"fmt"
	"log"
	"os/exec"
	"testing"
)

// 2 + 1 + 1 + 8 + 4 = 16
type DubboHeader2 struct {
	MagicNumber uint16
	Flat        uint8
	Status      uint8
	InvokeId    uint64
	BodyLength  uint32
}

func getReply1() []byte {
	// make sure jar is generate in hessian2/test_dubbo
	cmd := exec.Command("java", "-jar", "test_dubbo/target/test_dubbo-1.0.0.jar", "replyRequest")
	out, err := cmd.Output()
	if err != nil {
		log.Fatal(err)
	}
	return out
}

func TestDubboHeader2(t *testing.T) {
	resp := getReply1()
	reader := bytes.NewReader(resp)

	// read header
	header := DubboHeader2{}
	binary.Read(reader, binary.BigEndian, &header)
	fmt.Printf("%x %x %x %x %d\n", header.MagicNumber, header.Flat, header.Status, header.InvokeId, header.BodyLength)

	// read body
	d := NewDecoder(resp[16:]) // 16 is header size
	for i := 0; i < 7; i++ {
		r, err := d.Decode()
		if err != nil {
			log.Fatal(r)
		}
		fmt.Printf("%v\n", r)
	}
}

注意事项:

  • 上述测试代码需要放到hessian2目录下,命名为dubbo_test.go
  • 在跑测试代码之前,确保hessian2/test_dubbo目录下的jar已经生成,生成方式参见hessian2/test_dubbo目录下的readme

from dubbo-go-hessian2.

gaoxinge avatar gaoxinge commented on June 2, 2024

目前没有遇到问题,暂时先不改动。

from dubbo-go-hessian2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.