servicecall_add_go - catyguan/sad GitHub Wiki

用例场景(加法)GoLang实现范例

服务端

func SM_Add(peer core.ServicePeer, req *core.Request, ctx *core.Context) error {
	pa := req.GetInt("a")
	pb := req.GetInt("b")
	pc := pa + pb
	
	a := core.NewAnswer()
	a.SureResult().Put("Data", pc)

	peer.WriteAnswer(a, nil)
	return nil
}

客户端

cl := ...
addr := ...
req := sccore.NewRequest()
req.Put("a", 1)
req.Put("b", 2)
ctx := sccore.NewContext()

answer, err := cl.Invoke(addr, req, ctx)
if err != nil {
	return err
}
if answer.IsDone() {
	rs := answer.SureResult()
	c := rs.GetInt("Data")
} else {
	...
}