// Start starts an Apache Thrift server on port 8088 func Start() { // We expose the following endpoints: // /thrift/ThriftTest: // Thrift service using TBinaryProtocol // /thrift/SecondService // Thrift service using TBinaryProtocol // /thrift/mutliplexed // Thrift service using TBinaryProtocol with TMultiplexedProtocol, // serving both, ThriftTest and SecondService pfactory := thrift.NewTBinaryProtocolFactoryDefault() thriftTest := gauntlet_apache.NewThriftTestProcessor(thriftTestHandler{}) secondService := gauntlet_apache.NewSecondServiceProcessor(secondServiceHandler{}) multiplexed := thrift.NewTMultiplexedProcessor() multiplexed.RegisterProcessor("ThriftTest", thriftTest) multiplexed.RegisterProcessor("SecondService", secondService) mux := http.NewServeMux() mux.HandleFunc("/thrift/ThriftTest", thrift.NewThriftHandlerFunc(thriftTest, pfactory, pfactory)) mux.HandleFunc("/thrift/SecondService", thrift.NewThriftHandlerFunc(secondService, pfactory, pfactory)) mux.HandleFunc("/thrift/multiplexed", thrift.NewThriftHandlerFunc(multiplexed, pfactory, pfactory)) server = net.NewHTTPServer(&http.Server{ Addr: addr, Handler: mux, ReadTimeout: 5 * time.Second, WriteTimeout: 5 * time.Second, }) if err := server.ListenAndServe(); err != nil { log.Fatalf("failed to start Apache Thrift server: %v", err) } }
// Start starts an http server that yarpc client will make requests to func Start() { mux := &yarpcHTTPMux{ handlers: make(map[string]http.Handler), } mux.HandleFunc("handlertimeout/raw", handlerTimeoutRawHandler) server = net.NewHTTPServer( &http.Server{ Addr: addr, Handler: mux, ReadTimeout: 5 * time.Second, WriteTimeout: 5 * time.Second, }) if err := server.ListenAndServe(); err != nil { log.Fatalf("failed to start HTTP server: %v", err) } }
func (i *inbound) Start(service transport.ServiceDetail, d transport.Deps) error { i.tracer = d.Tracer() var httpHandler http.Handler = handler{ Registry: service.Registry, Deps: d, } if i.mux != nil { i.mux.Handle(i.muxPattern, httpHandler) httpHandler = i.mux } i.server = intnet.NewHTTPServer(&http.Server{ Addr: i.addr, Handler: httpHandler, }) if err := i.server.ListenAndServe(); err != nil { return err } i.addr = i.server.Listener().Addr().String() // in case it changed return nil }