内容简介: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集群客户端
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTML 编码/解码
HTML 编码/解码
XML 在线格式化
在线 XML 格式化压缩工具