内容简介:1,客户端2,服务端3,实现类
1,客户端
package thrift
import (
"fmt"
"git.apache.org/thrift.git/lib/go/thrift"
"net"
"os"
"test/idlgen/HelloWorld"
)
func Client1() {
transportFactory := thrift.NewTBufferedTransportFactory(8192)
protocolFactory := thrift.NewTCompactProtocolFactory()
transport, err := thrift.NewTSocket(net.JoinHostPort("127.0.0.1", "9999"))
if err != nil{
fmt.Println("err")
os.Exit(1)
}
useTransport := transportFactory.GetTransport(transport)
client := HelloWorld.NewHelloGoClientFactory(useTransport, protocolFactory)
if err = transport.Open(); err != nil{
fmt.Println("err")
os.Exit(1)
}
defer transport.Close()
res, err := client.Hello("hello")
if err != nil{
fmt.Println("err")
os.Exit(1)
}
fmt.Println(res)
}
2,服务端
package thrift
import (
"fmt"
"git.apache.org/thrift.git/lib/go/thrift"
"test/idlgen/HelloWorld"
)
func Server1() {
transport, err := thrift.NewTServerSocket(":9999")
if err != nil{
fmt.Println("err")
}
handler := &HelloGo{}
processor := HelloWorld.NewHelloGoProcessor(handler)
transportFactory := thrift.NewTBufferedTransportFactory(8192)
protocolFactory := thrift.NewTCompactProtocolFactory()
server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
if err := server.Serve(); err != nil{
fmt.Println("err")
}
}
3,实现类
package thrift
type HelloGo struct {
}
func (hg *HelloGo) Hello(name string) (string, error) {
return name, nil
}
4,idl定义
namespace php Idlgen.HelloWorld
namespace java Idlgen.HelloWorld
namespace go idlgen.HelloWorld
service HelloGo{
string hello(1:string name),
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 支付宝客户端架构解析:iOS 客户端启动性能优化初探
- 自己动手做数据库客户端: BashSQL开源数据库客户端
- 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
- 客户端HTTP缓存
- 简析移动客户端安全
- 配置Hadoop集群客户端
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。