thrift客户端定义连接、协议部分和调用部分分离
最近在用go开发thrift客户端,目前客户端一个方法如下:
1 go func() {
2
3 transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory())
4 protocolFactory := thrift.NewTBinaryProtocolFactoryDefault()
5
6 tSocket, err := thrift.NewTSocket(net.JoinHostPort(ip, port))
7 if err != nil {
8 fmt.Fprintln(os.Stderr, "Error resolving address, ", err)
9 os.Exit(1)
10 }
11
12 tTransport, _ := transportFactory.GetTransport(tSocket)
13
14 client := FundInfo.NewFundInfoServiceClientFactory(tTransport, protocolFactory)
15 if err := tTransport.Open(); err != nil {
16 fmt.Fprintln(os.Stderr, (fmt.Errorf("Error opening socket to %s:%s : %v", ip, port, err)))
17 os.Exit(1)
18 }
19
20 defer tTransport.Close()
21
22 res, err := client.GetFundInfo(ctx, fundcode)
23 Chan <- res
24 }()
方法中第3-20行定义的是socket连接、传输协议等,只有第22行是实际调用服务端方法。
请问能否将前面部分与实际调用部分分离?不然在每个客户端方法中都得定义这些,太显得允余。
望大神指点,谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)