func binary() { fmt.Printf("\n ==== demo Thrift Binary serialization ====\n") t := thrift.NewTMemoryBufferLen(1024) p := thrift.NewTBinaryProtocolFactoryDefault().GetProtocol(t) tser := &thrift.TSerializer{ Transport: t, Protocol: p, } str := "hi there" a := &tutorial.Work{ Num1: 12, Num2: 24, Comment: &str, } by, err := tser.Write(a) panicOn(err) fmt.Printf("by = '%v', length %v\n", string(by), len(by)) t2 := thrift.NewTMemoryBufferLen(1024) p2 := thrift.NewTBinaryProtocolFactoryDefault().GetProtocol(t2) deser := &thrift.TDeserializer{ Transport: t2, Protocol: p2, } b := tutorial.NewWork() deser.Transport.Close() // resets underlying bytes.Buffer err = deser.Read(b, by) panicOn(err) fmt.Printf("b = '%#v'\n", b) }
func main() { socket, err := thrift.NewTSocket("localhost:8090") if err != nil { fmt.Printf("There was an error creating your socket! Here it is %v", err) os.Exit(1) } transport := thrift.NewTBufferedTransport(socket, 1024) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() client := service.NewMakeTagsClientFactory(transport, protocolFactory) pwd, _ := os.Getwd() fileName := pwd + "/img.png" fileName, _ = filepath.Abs(fileName) imgBytes, err := ioutil.ReadFile(fileName) if err != nil { fmt.Printf("There was an err reading the file! Here it is %v", err) os.Exit(1) } socket.Open() tags, err := client.Generate(service.Image(imgBytes)) if err != nil { fmt.Printf("There was an err getting the tags! Here it is %v ", err) os.Exit(1) } fmt.Printf("These are the tags for your image %v", tags) socket.Close() }
func main() { startTime := currentTimeMillis() transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() transport, err := thrift.NewTSocket(NETWORK_ADDR) if err != nil { logrus.Fatal(os.Stderr, "error resolving address:", err) } useTransport := transportFactory.GetTransport(transport) client := rpc.NewSessionManagerClientFactory(useTransport, protocolFactory) if err := transport.Open(); err != nil { logrus.Fatal(os.Stderr, "Error opening socket to "+NETWORK_ADDR, err) } defer transport.Close() // 开始调用服务的接口 ctx := rpc.NewSessionContext() sid, _ := client.CreateSession(ctx) logrus.Infof("创新新的会话id => %s", sid) ctx, _ = client.GetSession(sid) logrus.Infof("获取会话上下文 => %+v", ctx) endTime := currentTimeMillis() logrus.Infof("本次调用用时: %d 毫秒", endTime-startTime) }
// go test github.com/citysir/zpush/push -test.v func Test_Push(t *testing.T) { startTime := currentTimeMillis() transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() transport, err := thrift.NewTSocket("127.0.0.1:19090") if err != nil { t.Log(os.Stderr, "error resolving address:", err) os.Exit(1) } useTransport := transportFactory.GetTransport(transport) client := push.NewPushServiceClientFactory(useTransport, protocolFactory) if err := transport.Open(); err != nil { t.Log(os.Stderr, "Error opening socket to 127.0.0.1:19090", " ", err) os.Exit(1) } defer transport.Close() for i := 0; i < 1000; i++ { paramMap := make(map[string]string) paramMap["name"] = "qinerg" paramMap["passwd"] = "123456" result, err := client.FunCall(currentTimeMillis(), "login", paramMap) t.Log(i, "Call->", result, err) } endTime := currentTimeMillis() t.Log("Program exit. time->", endTime, startTime, (endTime - startTime)) }
func main() { startTime := currentTimeMillis() transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() transport, err := thrift.NewTSocket(net.JoinHostPort("127.0.0.1", "19090")) if err != nil { fmt.Fprintln(os.Stderr, "error resolving address:", err) os.Exit(1) } useTransport := transportFactory.GetTransport(transport) client := rpc.NewRpcServiceClientFactory(useTransport, protocolFactory) if err := transport.Open(); err != nil { fmt.Fprintln(os.Stderr, "Error opening socket to 127.0.0.1:19090", " ", err) os.Exit(1) } defer transport.Close() for i := 0; i < 1000; i++ { paramMap := make(map[string]string) paramMap["name"] = "qinerg" paramMap["passwd"] = "123456" r1, e1 := client.FunCall(currentTimeMillis(), "login", paramMap) fmt.Println(i, "Call->", r1, e1) } endTime := currentTimeMillis() fmt.Println("Program exit. time->", endTime, startTime, (endTime - startTime)) }
func main() { var err error transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() var transport thrift.TTransport transport, err = thrift.NewTSocket(listen) if err != nil { fmt.Println("error, thrift init!") return } transport = transportFactory.GetTransport(transport) defer transport.Close() if err := transport.Open(); err != nil { fmt.Printf("error %v\n", err) return } client := puller.NewPullerClientFactory(transport, protocolFactory) var request puller.Request request.UserId = 12398 request.Payload = "dlrow olleh" var response *puller.Response response, err = client.Pull(&request) if err != nil { fmt.Printf("error, response[%v]\n", err) return } fmt.Printf("response:[%v]\n", response) }
// create a new PelicanClient instance for a given host func NewPelicanClient(host string) *PelicanClient { // init client and catch any errors socket, err := thrift.NewTSocket(host) if err != nil { panic(err) } // create a transport factory transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) // create a binary protocal factory protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() // create a binary transport for the socket transport := transportFactory.GetTransport(socket) // create a new Pelican User service client client := user.NewUserSvcClientFactory(transport, protocolFactory) // fill our wrapper struct return &PelicanClient{ Host: host, Transport: transport, Client: client, } }
// NewHbaseServer starts an self-implementation hbase func NewHbaseServer(hb Hbase) (*TestServer, error) { port, _ := GetPort() addr := fmt.Sprintf(":%d", port) // fork a goroutine to serve requests var transportFactory thrift.TTransportFactory protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() transportFactory = thrift.NewTBufferedTransportFactory(8192) transportFactory = thrift.NewTFramedTransportFactory(transportFactory) transport, err := thrift.NewTServerSocket(addr) if err != nil { log.Fatal(err) } srv := thrift.NewTSimpleServer4( NewHbaseProcessor(hb), transport, transportFactory, protocolFactory, ) if err := srv.Listen(); err != nil { log.Fatal(err) } go srv.AcceptLoop() // TODO: stop server when stop chan is closed return &TestServer{ Port: port, stop: make(chan struct{}), }, nil }
func Connect(host string, options Options) (*Connection, error) { transport, err := thrift.NewTSocket(host) if err != nil { return nil, err } if err := transport.Open(); err != nil { return nil, err } if transport == nil { return nil, errors.New("nil thrift transport") } /* NB: hive 0.13's default is a TSaslProtocol, but there isn't a golang implementation in apache thrift as of this writing. */ protocol := thrift.NewTBinaryProtocolFactoryDefault() client := tcliservice.NewTCLIServiceClientFactory(transport, protocol) session, err := client.OpenSession(*tcliservice.NewTOpenSessionReq()) if err != nil { return nil, err } return &Connection{client, session.SessionHandle, options}, nil }
// create one client instance func (zt *ZooThrift) createClientFactory() (interface{}, error) { transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() address := zt.provider.Selector() if address != "" { transport, err := thrift.NewTSocket(address) if err != nil { return nil, err } useTransport := transportFactory.GetTransport(transport) client := reflect.ValueOf(zt.Service) mutable := client.Elem() mutable.FieldByName("Transport").Set(reflect.Value(reflect.ValueOf(useTransport))) mutable.FieldByName("ProtocolFactory").Set(reflect.Value(reflect.ValueOf(protocolFactory))) mutable.FieldByName("InputProtocol").Set(reflect.Value(reflect.ValueOf(protocolFactory.GetProtocol(useTransport)))) mutable.FieldByName("OutputProtocol").Set(reflect.Value(reflect.ValueOf(protocolFactory.GetProtocol(useTransport)))) mutable.FieldByName("SeqId").SetInt(0) if err := transport.Open(); err != nil { return nil, err } return zt.Service, nil } else { return nil, ErrSerAddress } }
func SendSms(msgSend string, phones_slice []int64) { // random choice host hosts := []string{"10.231.144.136", "10.231.144.137"} rk := GenRandn(len(hosts)) host := hosts[rk] port := "9090" transport, err := thrift.NewTSocket(net.JoinHostPort(host, port)) if err != nil { fmt.Fprintln(os.Stderr, "error resolving address:", err) os.Exit(1) } transportFactory := thrift.NewTBufferedTransportFactory(10240) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() useTransport := transportFactory.GetTransport(transport) client := sms.NewMessageServiceClientFactory(useTransport, protocolFactory) if err := transport.Open(); err != nil { fmt.Fprintln(os.Stderr, "Error opening socket to ", host, ":", port, " ", err) os.Exit(1) } defer transport.Close() msg := sms.NewMessage() msg.Phones = phones_slice msg.BusinessId = 200100000 msg.Message = msgSend client.SendMessage(msg) }
func main() { transportFactory := thrift.NewTFramedTransportFactory( thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() addr := "localhost:3636" socket, err := thrift.NewTSocket(addr) if err != nil { panic(err) } transport := transportFactory.GetTransport(socket) defer transport.Close() if err := transport.Open(); err != nil { panic(err) } client := hello.NewHelloClientFactory(transport, protocolFactory) request := hello.NewHelloRequest() request.Message = "world!" response, err := client.Hello(request) if err != nil { panic(err) } fmt.Println(response.Message) }
func clientCall(min int32) { startTime := currentTimeMillis() transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() transport, err := thrift.NewTSocket(NetworkAddr) for err != nil { transport, err = thrift.NewTSocket(NetworkAddr) if err != nil { log.Error("error resolving address:", err) } time.Sleep(1 * time.Second) } useTransport := transportFactory.GetTransport(transport) client := demo.NewRpcServiceClientFactory(useTransport, protocolFactory) if err := transport.Open(); err != nil { log.Error("Error opening socket to 127.0.0.1:19090", " ", err) return } defer transport.Close() for i := min; i < min+3; i++ { r1, e1 := client.Add(i, i+1) log.Trace("%d %s %v %v", i, "Call->", r1, e1) } endTime := currentTimeMillis() log.Trace("Program exit. time->", endTime, startTime, (endTime - startTime)) }
// opens a hive connection func (conn *HiveConnection) Open() error { log.Println("creating new hive connection ") var transport thrift.TTransport var err error transport, err = thrift.NewTSocket(conn.Server) if err != nil { return err } if transport == nil { return errors.New("No TSocket connection?") } transport.Open() // NewTBinaryProtocolTransport(t TTransport) *TBinaryProtocol { protocolfac := thrift.NewTBinaryProtocolFactoryDefault() //NewThriftHiveClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) conn.Client = thrifthive.NewThriftHiveClientFactory(transport, protocolfac) log.Printf("is open? %v", transport.IsOpen()) name, err := conn.Client.GetName() log.Printf("in conn.Open, how is client? %v %v", name, err) if conn.Client == nil { log.Println("ERROR, no client") return errors.New("no client") } return nil }
// Serve starts service for the given Computation. // // Must be called from main() function of worker. func Serve(comp Computation) error { bindAddr := os.Getenv(bolt.KConcordEnvKeyClientListenAddr) proxyAddr := os.Getenv(bolt.KConcordEnvKeyClientProxyAddr) // Init transport transport, err := thrift.NewTServerSocket(bindAddr) if err != nil { panic("failed to create server") } factory := thrift.NewTTransportFactory() transportF := thrift.NewTFramedTransportFactory(factory) protocolF := thrift.NewTBinaryProtocolFactoryDefault() proxy, err := newProxy(proxyAddr, comp.Metadata()) if err != nil { panic("failed to initialize proxy") } service := newComputationService(comp, proxy) processor := bolt.NewComputationServiceProcessor(service) srv := thrift.NewTSimpleServer4(processor, transport, transportF, protocolF) return srv.Serve() }
func main() { transport, err := thrift.NewTSocket(net.JoinHostPort("127.0.0.1", "9090")) if err != nil { log.Println(err) } defer transport.Close() protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() client := CoffeeService.NewCoffeeOrderClientFactory(transport, protocolFactory) if err := transport.Open(); err != nil { log.Println(err) os.Exit(1) } coffee := CoffeeService.NewCoffee() coffee.Name = "foo" coffee.Creamers = []*CoffeeService.Creamer{&CoffeeService.Creamer{Name: "Fruit"}} coffee.Sweetners = []*CoffeeService.Sweetner{&CoffeeService.Sweetner{Name: "Yum", Amount: 3}} coffee.Temperature = 140 coffee.Iced = false coffee.Size = &CoffeeService.Size{Name: "Venti", Ounces: 20} log.Println(coffee) log.Println(client.Ping()) log.Println(client.OrderCoffee(coffee)) }
func main() { flag.Usage = Usage protocol := flag.String("P", "binary", "Specify the protocol (binary, compact, json, simplejson)") transport := flag.String("transport", "binary", "Specify transport (framed, buffered, file, memory, zlib)") buffered := flag.String("buffered", "off", "Use buffered transport") framed := flag.String("framed", "off", "Use framed transport") addr := flag.String("addr", "localhost:9090", "Address to listen to") secure := flag.Bool("secure", false, "Use tls secure transport") conf_path := flag.String("conf", "nil", "配置文件路径") flag.Parse() if *conf_path == "nil" { Usage() os.Exit(1) } var protocolFactory thrift.TProtocolFactory switch *protocol { case "compact": protocolFactory = thrift.NewTCompactProtocolFactory() case "simplejson": protocolFactory = thrift.NewTSimpleJSONProtocolFactory() case "json": protocolFactory = thrift.NewTJSONProtocolFactory() case "binary": protocolFactory = thrift.NewTBinaryProtocolFactoryDefault() default: fmt.Fprint(os.Stderr, "Invalid protocol specified", protocol, "\n") Usage() os.Exit(1) } var transportFactory thrift.TTransportFactory if *buffered == "on" { transportFactory = thrift.NewTBufferedTransportFactory(8192) } else { transportFactory = thrift.NewTTransportFactory() } if *framed == "on" { transportFactory = thrift.NewTFramedTransportFactory(transportFactory) } //获取配置文件的路径 complete_path(conf_path) //初始化控制层 handler.Init(*conf_path) if err := runServer(transportFactory, *transport, protocolFactory, *addr, *secure); err != nil { fmt.Println("error running server:", err) } }
func InitControllerRpcClient() error { // //startTime := currentTimeMillis() // transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) // protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() // // transport, err := thrift.NewTSocket(net.JoinHostPort(Conf.ControllerServerIp, Conf.ControllerServerPort)) // if err != nil { // fmt.Fprintln(os.Stderr, "error resolving address:", err) // return nil // } // // useTransport := transportFactory.GetTransport(transport) // controllerClient = controller.NewControllerRpcServiceClientFactory(useTransport, protocolFactory) // if err := useTransport.Open(); err != nil { // fmt.Fprintln(os.Stderr, "Error opening socket to "+Conf.ControllerServerIp+":"+Conf.ControllerServerPort, " ", err) // return err // } // //defer transport.Close() // return nil thriftPool = &Pool{ Dial: func() (interface{}, error) { transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() transport, err := thrift.NewTSocket(net.JoinHostPort(Conf.ControllerServerIp, Conf.ControllerServerPort)) if err != nil { log.Error("error resolving address: %s, port: %s error(%v)", Conf.ControllerServerIp, Conf.ControllerServerPort, err) return nil, err } useTransport := transportFactory.GetTransport(transport) client := controller.NewControllerRpcServiceClientFactory(useTransport, protocolFactory) if err = client.Transport.Open(); err != nil { log.Error("client.Transport.Open() error(%v)", err) return nil, err } return client, nil }, Close: func(v interface{}) error { v.(*controller.ControllerRpcServiceClient).Transport.Close() return nil }, TestOnBorrow: func(v interface{}) error { if v.(*controller.ControllerRpcServiceClient).Transport.IsOpen() { return nil } else { return ErrConnectionClosed } }, MaxActive: Conf.ThriftMaxActive, MaxIdle: Conf.ThriftMaxIdle, IdleTimeout: time.Duration(Conf.ThriftIdleTimeout), } return nil }
func main() { socket, err := thrift.NewTSocket("localhost:4000") if err != nil { panic(err) } transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() transport := transportFactory.GetTransport(socket) client := microservice.NewPersonServiceClientFactory(transport, protocolFactory) defer client.Transport.Close() if err := client.Transport.Open(); err != nil { panic(err) } p1 := NewPersonInit(1, "Dimas", "Ragil T", "*****@*****.**", 20, true) p1, err = client.Create(p1) if err != nil { panic(err) } p2, err := client.Read(p1.ID) if err != nil { panic(err) } fmt.Println(p2.ID, p2.Firstname, *p2.Lastname, *p2.Email, p2.Age, p2.Active) p3 := NewPersonInit(2, "Ratna", "Siwi Y", "*****@*****.**", 20, true) p3, err = client.Create(p3) if err != nil { panic(err) } p4, err := client.Read(p3.ID) if err != nil { panic(err) } fmt.Println(p4.ID, p4.Firstname, *p4.Lastname, *p4.Email, p4.Age, p4.Active) p5 := NewPersonInit(1, "Dimas", "Ragil T", "*****@*****.**", 20, false) p5, err = client.Update(p5) if err != nil { panic(err) } p6, err := client.GetAll() for _, person := range p6 { fmt.Println(person.ID, person.Firstname, *person.Lastname, *person.Email, person.Age, person.Active) } p7 := client.Destroy(p5.ID) if p7 != nil { panic(err) } p8, err := client.GetAll() for _, person := range p8 { fmt.Println(person.ID, person.Firstname, *person.Lastname, *person.Email, person.Age, person.Active) } }
func BenchmarkMarshalByThrift(b *testing.B) { t := thrift.NewTSerializer() pf := thrift.NewTBinaryProtocolFactoryDefault() //NewTCompactProtocolFactory() or NewTJSONProtocolFactory() t.Protocol = pf.GetProtocol(t.Transport) b.ResetTimer() for i := 0; i < b.N; i++ { _, _ = t.Write(&thriftColorGroup) } }
func NewThriftExporter(addr string, reg registry.Registry) *ThriftExporter { return &ThriftExporter{ Provider: registry.ProviderInfo{Addr: addr, Status: 0, Weight: 5}, Reg: reg, Config: &ThriftConfig{ TransFactory: thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()), ProtocolFactory: thrift.NewTBinaryProtocolFactoryDefault(), Secure: false, }, } }
func main() { dcacheHandler := NewDcacheHandler() dcacheServiceProcessor := dcache.NewDcacheServiceProcessor(dcacheHandler) ssock, err := thrift.NewTServerSocket("127.0.0.1:9090") if err != nil { panic("Problem in creating transport") } server := thrift.NewTSimpleServer4(dcacheServiceProcessor, ssock, thrift.NewTBufferedTransportFactory(204800), thrift.NewTBinaryProtocolFactoryDefault()) server.Serve() }
func main() { protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() transport, err := thrift.NewTServerSocket("localhost:8090") if err != nil { fmt.Printf("There was an error creating your socket! Here it is %v", err) } transportFactory := thrift.NewTTransportFactory() processor := service.NewMakeTagsProcessor(handler.NewTagsHandler(os.Getenv("ACCESS_TOKEN"))) server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory) fmt.Printf("server listening on %s\n", "localhost:8090") server.Serve() }
func main() { handler := NewCoffeeOrderHandler() processor := co.NewCoffeeOrderProcessor(handler) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() transportFactory := thrift.NewTTransportFactory() serverTransport, err := thrift.NewTServerSocket("0.0.0.0:9090") if err != nil { log.Println(err) } server := thrift.NewTSimpleServer4(processor, serverTransport, transportFactory, protocolFactory) server.Serve() }
func main() { var networkAddr = flag.String("addr", "localhost:9090", "会话服务器地址") flag.Parse() transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() //protocolFactory := thrift.NewTCompactProtocolFactory() if err := service.RunNonSecureServer(transportFactory, protocolFactory, *networkAddr); err != nil { logrus.Fatal(err) } }
func Connect(host string, thriftPort string) (*elasticsearch.RestClient, error) { binaryProtocol := thrift.NewTBinaryProtocolFactoryDefault() socket, err := thrift.NewTSocket(net.JoinHostPort(host, thriftPort)) if err != nil { return nil, err } bufferedTransport := thrift.NewTBufferedTransport(socket, BUFFER_SIZE) client := elasticsearch.NewRestClientFactory(bufferedTransport, binaryProtocol) if err := bufferedTransport.Open(); err != nil { return nil, err } return client, nil }
func NewHCatClient(addr string) (*HCatClient, error) { transportFactory := thrift.NewTTransportFactory() protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() socket, err := thrift.NewTSocket(addr) if err != nil { return nil, err } transport := transportFactory.GetTransport(socket) mstore := hive.NewThriftHiveMetastoreClientFactory(transport, protocolFactory) // return &HCatClient{ mstore, socket }, nil return &HCatClient{*mstore, socket}, nil }
func (this *Engine) launchRpcServe() (done chan interface{}) { var protocolFactory thrift.TProtocolFactory switch this.conf.rpc.protocol { case "binary": protocolFactory = thrift.NewTBinaryProtocolFactoryDefault() case "json": protocolFactory = thrift.NewTJSONProtocolFactory() case "simplejson": protocolFactory = thrift.NewTSimpleJSONProtocolFactory() case "compact": protocolFactory = thrift.NewTCompactProtocolFactory() default: panic(fmt.Sprintf("Invalid protocol: %s", this.conf.rpc.protocol)) } transportFactory := thrift.NewTTransportFactory() if this.conf.rpc.framed { transportFactory = thrift.NewTFramedTransportFactory(transportFactory) } serverTransport, err := thrift.NewTServerSocketTimeout(this.conf.rpc.listenAddr, this.conf.rpc.clientTimeout) if err != nil { panic(err) } this.rpcServer = thrift.NewTSimpleServer4(this.rpcProcessor, serverTransport, transportFactory, protocolFactory) log.Info("RPC server ready at %s", this.conf.rpc.listenAddr) done = make(chan interface{}) go func() { for { err = this.rpcServer.Serve() if err != nil { log.Error(err) break } } done <- 1 }() return done }
func TestRPC(t *testing.T) { options := &DefaultTestOptions options.Port = port server := RunServer(options) if server == nil { t.Fatal("Failed to start gnatsd") } defer server.Shutdown() testRPCHappyPath(t, thrift.NewTJSONProtocolFactory()) testRPCHappyPath(t, thrift.NewTBinaryProtocolFactoryDefault()) testRPCHappyPath(t, thrift.NewTCompactProtocolFactory()) testRPCNoServer(t) }
func main() { var protocolFactory thrift.TProtocolFactory = thrift.NewTBinaryProtocolFactoryDefault() var transportFactory thrift.TTransportFactory = thrift.NewTBufferedTransportFactory(8192) transport, err := thrift.NewTServerSocket(NetworkAddr) if err != nil { fmt.Println("Error!", err) os.Exit(1) } handler := NewGreeterHandler() processor := greeter.NewGreeterProcessor(handler) server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory) fmt.Println("Starting the simple server... on ", NetworkAddr) server.Serve() }