本文整理汇总了Golang中github.com/youtube/vitess/go/rpcplus.NewServer函数的典型用法代码示例。如果您正苦于以下问题:Golang NewServer函数的具体用法?Golang NewServer怎么用?Golang NewServer使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewServer函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestGoRPCBinlogStreamer
// the test here creates a fake server implementation, a fake client
// implementation, and runs the test suite against the setup.
func TestGoRPCBinlogStreamer(t *testing.T) {
// Listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
host := listener.Addr().(*net.TCPAddr).IP.String()
port := listener.Addr().(*net.TCPAddr).Port
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
fakeUpdateStream := binlogplayertest.NewFakeBinlogStreamer(t)
server.Register(gorpcbinlogstreamer.New(fakeUpdateStream))
// create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
// Create a Go Rpc client to talk to the fake tablet
c := &client{}
// and send it to the test suite
binlogplayertest.Run(t, c, &pb.EndPoint{
Host: host,
PortMap: map[string]int32{
"vt": int32(port),
},
}, fakeUpdateStream)
}
开发者ID:richarwu,项目名称:vitess,代码行数:35,代码来源:player_test.go
示例2: TestGoRPCBinlogStreamer
// the test here creates a fake server implementation, a fake client
// implementation, and runs the test suite against the setup.
func TestGoRPCBinlogStreamer(t *testing.T) {
// Listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
fakeUpdateStream := binlogplayertest.NewFakeBinlogStreamer(t)
server.Register(gorpcbinlogstreamer.New(fakeUpdateStream))
// create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server, false)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
// Create a Go Rpc client to talk to the fake tablet
client := &GoRpcBinlogPlayerClient{}
// and send it to the test suite
binlogplayertest.Run(t, client, listener.Addr().String(), fakeUpdateStream)
}
开发者ID:yonglehou,项目名称:vitess,代码行数:28,代码来源:player_test.go
示例3: testGoRPCTabletConn
// This test makes sure the go rpc service works
func testGoRPCTabletConn(t *testing.T) {
// fake service
service := tabletconntest.CreateFakeServer(t)
// listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
defer listener.Close()
port := listener.Addr().(*net.TCPAddr).Port
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
server.Register(gorpcqueryservice.New(service))
// create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
// run the test suite
tabletconntest.TestSuite(t, protocolName, &pb.EndPoint{
Host: "localhost",
PortMap: map[string]int32{
"vt": int32(port),
},
}, service)
}
开发者ID:ruiaylin,项目名称:vitess,代码行数:33,代码来源:conn_test.go
示例4: TestGoRPCGoClient
// TestGoRPCGoClient tests the go client using goRPC
func TestGoRPCGoClient(t *testing.T) {
service := createService()
// listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
defer listener.Close()
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
server.Register(gorpcvtgateservice.New(service))
// create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server, false)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
// and run the test suite
testGoClient(t, "gorpc", listener.Addr().String())
}
开发者ID:cinderalla,项目名称:vitess,代码行数:26,代码来源:gorpc_goclient_test.go
示例5: TestMain
func TestMain(m *testing.M) {
// fake service
service := CreateFakeServer()
// listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
panic(fmt.Sprintf("Cannot listen: %v", err))
}
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
server.Register(gorpcvtgateservice.New(service))
// create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server, false)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
testAddress = listener.Addr().String()
os.Exit(m.Run())
}
开发者ID:pranjal5215,项目名称:vitess,代码行数:25,代码来源:client_test.go
示例6: main
func main() {
server := rpcplus.NewServer()
server.Register(new(twitterapi.Account))
server.Register(new(twitterapi.Profile))
server.Register(new(twitterapi.Tweet))
rpcwrap.ServeCustomRPC(
Mux,
server,
false, // use auth
"json", // codec name
jsonrpc.NewServerCodec,
)
rpcwrap.ServeHTTPRPC(
Mux, // httpmuxer
server, // rpcserver
"http_json", // codec name
jsonrpc.NewServerCodec, // jsoncodec
ContextCreator, // contextCreator
)
fmt.Println("Server listening on 3000")
http.ListenAndServe("localhost:3000", Mux)
}
开发者ID:Zenithar,项目名称:gene,代码行数:29,代码来源:main.go
示例7: startListeningWithContext
func startListeningWithContext(ctx context.Context) net.Listener {
server := rpcplus.NewServer()
server.Register(new(Arith))
mux := http.NewServeMux()
contextCreator := func(req *http.Request) context.Context {
return ctx
}
ServeHTTPRPC(
mux, // httpmuxer
server, // rpcserver
"json", // codec name
jsonrpc.NewServerCodec, // jsoncodec
contextCreator, // contextCreator
)
l, err := net.Listen("tcp", "127.0.0.1:0")
if err != nil {
log.Fatal(err)
}
go http.Serve(l, mux)
return l
}
开发者ID:littleyang,项目名称:vitess,代码行数:26,代码来源:rcpwrap_httprpc_test.go
示例8: TestGoRPCVTGateConn
// This test makes sure the go rpc service works
func TestGoRPCVTGateConn(t *testing.T) {
// fake service
service := vtgateconntest.CreateFakeServer(t)
// listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
server.Register(gorpcvtgateservice.New(service))
// create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server, false)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
// Create a Go RPC client connecting to the server
ctx := context.Background()
client, err := dial(ctx, listener.Addr().String(), 30*time.Second)
if err != nil {
t.Fatalf("dial failed: %v", err)
}
// run the test suite
vtgateconntest.TestSuite(t, client, service)
// and clean up
client.Close()
}
开发者ID:pranjal5215,项目名称:vitess,代码行数:36,代码来源:conn_rpc_test.go
示例9: StartActionLoop
// StartActionLoop will start the action loop for a fake tablet,
// using ft.FakeMysqlDaemon as the backing mysqld.
func (ft *FakeTablet) StartActionLoop(t *testing.T, wr *wrangler.Wrangler) {
if ft.Agent != nil {
t.Fatalf("Agent for %v is already running", ft.Tablet.Alias)
}
// Listen on a random port
var err error
ft.Listener, err = net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
port := ft.Listener.Addr().(*net.TCPAddr).Port
// create a test agent on that port, and re-read the record
// (it has new ports and IP)
ft.Agent = tabletmanager.NewTestActionAgent(context.Background(), wr.TopoServer(), ft.Tablet.Alias, port, ft.FakeMysqlDaemon)
ft.Tablet = ft.Agent.Tablet().Tablet
// create the RPC server
ft.RPCServer = rpcplus.NewServer()
gorpctmserver.RegisterForTest(ft.RPCServer, ft.Agent)
// create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, ft.RPCServer, false)
ft.HTTPServer = http.Server{
Handler: handler,
}
go ft.HTTPServer.Serve(ft.Listener)
}
开发者ID:pranjal5215,项目名称:vitess,代码行数:32,代码来源:fake_tablet.go
示例10: TestVtctlServer
// the test here creates a fake server implementation, a fake client
// implementation, and runs the test suite against the setup.
func TestVtctlServer(t *testing.T) {
ts := vtctlclienttest.CreateTopoServer(t)
// Listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
server.Register(gorpcvtctlserver.NewVtctlServer(ts))
// Create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
// Create a VtctlClient Go Rpc client to talk to the fake server
client, err := goRPCVtctlClientFactory(listener.Addr().String(), 30*time.Second)
if err != nil {
t.Fatalf("Cannot create client: %v", err)
}
defer client.Close()
vtctlclienttest.TestSuite(t, ts, client)
}
开发者ID:littleyang,项目名称:vitess,代码行数:32,代码来源:client_test.go
示例11: NewRpcServer
func NewRpcServer(address string) *RpcServer {
return &RpcServer{
rpc: rpc.NewServer(),
address: address,
exit: make(chan chan error),
}
}
开发者ID:carriercomm,项目名称:go-micro,代码行数:7,代码来源:rpc_server.go
示例12: NewVtctlPipe
// NewVtctlPipe creates a new VtctlPipe based on the given topo server.
func NewVtctlPipe(t *testing.T, ts topo.Server) *VtctlPipe {
// Listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
server.Register(gorpcvtctlserver.NewVtctlServer(ts))
// Create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server, false)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
// Create a VtctlClient Go Rpc client to talk to the fake server
client, err := vtctlclient.New(listener.Addr().String(), 30*time.Second)
if err != nil {
t.Fatalf("Cannot create client: %v", err)
}
return &VtctlPipe{
listener: listener,
client: client,
t: t,
}
}
开发者ID:pranjal5215,项目名称:vitess,代码行数:32,代码来源:vtctl_pipe.go
示例13: newRpcServer
func newRpcServer(opts ...Option) Server {
return &rpcServer{
opts: newOptions(opts...),
rpc: rpc.NewServer(),
handlers: make(map[string]Handler),
subscribers: make(map[*subscriber][]broker.Subscriber),
exit: make(chan chan error),
}
}
开发者ID:kgrvamsi,项目名称:go-micro,代码行数:9,代码来源:rpc_server.go
示例14: testGoRPCTabletConn
// This test makes sure the go rpc service works
func testGoRPCTabletConn(t *testing.T, rpcOnlyInReply bool) {
// fake service
service := tabletconntest.CreateFakeServer(t)
// listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
defer listener.Close()
port := listener.Addr().(*net.TCPAddr).Port
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
server.Register(gorpcqueryservice.New(service))
// create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server, false)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
// Handle errors appropriately
*tabletserver.RPCErrorOnlyInReply = rpcOnlyInReply
// Create a Go RPC client connecting to the server
ctx := context.Background()
client, err := DialTablet(ctx, topo.EndPoint{
Host: "localhost",
NamedPortMap: map[string]int{
"vt": port,
},
}, tabletconntest.TestKeyspace, tabletconntest.TestShard, 30*time.Second)
if err != nil {
t.Fatalf("dial failed: %v", err)
}
// run the test suite
tabletconntest.TestSuite(t, client, service)
// and clean up
client.Close()
}
开发者ID:pranjal5215,项目名称:vitess,代码行数:45,代码来源:conn_test.go
示例15: TestGoRPCVTGateConn
// TestGoRPCVTGateConn makes sure the gorpc (BsonRPC) service works
func TestGoRPCVTGateConn(t *testing.T) {
// fake service
service := vtgateconntest.CreateFakeServer(t)
// listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
server.Register(gorpcvtgateservice.New(service))
// TODO(aaijazi): remove this flag once all VtGate Gorpc clients properly support the new behavior
*vtgate.RPCErrorOnlyInReply = true
// create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
// Create a Go RPC client connecting to the server
ctx := context.Background()
client, err := dial(ctx, listener.Addr().String(), 30*time.Second)
if err != nil {
t.Fatalf("dial failed: %v", err)
}
vtgateconntest.RegisterTestDialProtocol(client)
// run the test suite
vtgateconntest.TestSuite(t, client, service)
vtgateconntest.TestErrorSuite(t, service)
// and clean up
client.Close()
}
开发者ID:richarwu,项目名称:vitess,代码行数:40,代码来源:conn_rpc_test.go
示例16: TestGoRPCVTGateConn
// TestGoRPCVTGateConn makes sure the gorpc (BsonRPC) service works
func TestGoRPCVTGateConn(t *testing.T) {
// fake service
service := vtgateconntest.CreateFakeServer(t)
// listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
server.Register(gorpcvtgateservice.New(service))
// create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
// Create a Go RPC client connecting to the server
ctx := context.Background()
client, err := dial(ctx, listener.Addr().String(), 30*time.Second)
if err != nil {
t.Fatalf("dial failed: %v", err)
}
vtgateconntest.RegisterTestDialProtocol(client)
// run the test suite
vtgateconntest.TestSuite(t, client, service)
// TODO(sougou/alainjobart): find out why this was commmented out for grpc.
// This is now failing for gorpc also.
//vtgateconntest.TestErrorSuite(t, service)
// and clean up
client.Close()
}
开发者ID:zhangzzl,项目名称:vitess,代码行数:40,代码来源:conn_rpc_test.go
示例17: TestGoRPCTMServer
// the test here creates a fake server implementation, a fake client
// implementation, and runs the test suite against the setup.
func TestGoRPCTMServer(t *testing.T) {
// Listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
defer listener.Close()
port := int32(listener.Addr().(*net.TCPAddr).Port)
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
fakeAgent := agentrpctest.NewFakeRPCAgent(t)
server.Register(&TabletManager{fakeAgent})
// create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
// Create a Go Rpc client to talk to the fake tablet
client := &gorpctmclient.GoRPCTabletManagerClient{}
ti := topo.NewTabletInfo(&pb.Tablet{
Alias: &pb.TabletAlias{
Cell: "test",
Uid: 123,
},
Hostname: "localhost",
PortMap: map[string]int32{
"vt": port,
},
}, 0)
// and run the test suite
agentrpctest.Run(t, client, ti, fakeAgent)
}
开发者ID:richarwu,项目名称:vitess,代码行数:40,代码来源:gorpc_server_test.go
示例18: secureRegister
"github.com/youtube/vitess/go/rpcwrap/bsonrpc"
)
var (
// The flags used when calling RegisterDefaultSecureFlags.
SecurePort *int
CertFile *string
KeyFile *string
CACertFile *string
// Flags to alter the behavior of the library.
secureThrottle = flag.Int64("secure-accept-rate", 64, "Maximum number of secure connection accepts per second")
secureMaxBuffer = flag.Int("secure-max-buffer", 1500, "Maximum number of secure accepts allowed to accumulate")
// The rpc servers to use
secureRpcServer = rpcplus.NewServer()
authenticatedSecureRpcServer = rpcplus.NewServer()
)
// secureRegister registers the provided server to be served on the
// secure port, if enabled by the service map.
func secureRegister(name string, rcvr interface{}) {
if SecurePort == nil || *SecurePort == 0 {
return
}
if ServiceMap["bsonrpc-vts-"+name] {
log.Infof("Registering %v for bsonrpc over vts port, disable it with -bsonrpc-vts-%v service_map parameter", name, name)
secureRpcServer.Register(rcvr)
} else {
log.Infof("Not registering %v for bsonrpc over vts port, enable it with bsonrpc-vts-%v service_map parameter", name, name)
}
开发者ID:pranjal5215,项目名称:vitess,代码行数:31,代码来源:secure.go
示例19: NewAuthenticatorCRAMMD5
return err
}
if err = json.Unmarshal(data, c); err != nil {
return err
}
log.Infof("Loaded credentials from %s.", filename)
return nil
}
// CRAMMD5MaxRequests is the maximum number of requests that an
// unauthenticated client is allowed to make (this should be enough to
// perform authentication).
const CRAMMD5MaxRequests = 2
var (
AuthenticationServer = rpc.NewServer()
DefaultAuthenticatorCRAMMD5 = NewAuthenticatorCRAMMD5()
)
// AuthenticationFailed is returned when the client fails to
// authenticate.
var AuthenticationFailed = errors.New("authentication error: authentication failed")
func NewAuthenticatorCRAMMD5() *AuthenticatorCRAMMD5 {
return &AuthenticatorCRAMMD5{make(cramMD5Credentials)}
}
// LoadCredentials loads credentials stored in the JSON file named
// filename into the default authenticator.
func LoadCredentials(filename string) error {
return DefaultAuthenticatorCRAMMD5.Credentials.Load(filename)
开发者ID:plobsing,项目名称:vitess,代码行数:31,代码来源:authentication.go
示例20: ServeAuthRPC
// ServeAuthRPC handles authenticated rpc requests using the hijack
// scheme of rpc
func ServeAuthRPC(codecName string, cFactory ServerCodecFactory) {
http.Handle(GetRpcPath(codecName, true), &rpcHandler{cFactory, AuthenticatedServer, true})
}
// ServeCustomRPC serves the given rpc requests with the provided ServeMux,
// authenticated or not
func ServeCustomRPC(handler *http.ServeMux, server *rpc.Server, useAuth bool, codecName string, cFactory ServerCodecFactory) {
handler.Handle(GetRpcPath(codecName, useAuth), &rpcHandler{cFactory, server, useAuth})
}
// AuthenticatedServer is an rpc.Server instance that serves
// authenticated calls.
var AuthenticatedServer = rpc.NewServer()
// rpcHandler handles rpc queries for a 'CONNECT' method.
type rpcHandler struct {
cFactory ServerCodecFactory
server *rpc.Server
useAuth bool
}
// ServeHTTP implements http.Handler's ServeHTTP
func (h *rpcHandler) ServeHTTP(c http.ResponseWriter, req *http.Request) {
if req.Method != "CONNECT" {
c.Header().Set("Content-Type", "text/plain; charset=utf-8")
c.WriteHeader(http.StatusMethodNotAllowed)
io.WriteString(c, "405 must CONNECT\n")
return
开发者ID:miffa,项目名称:vitess,代码行数:30,代码来源:rpcwrap.go
注:本文中的github.com/youtube/vitess/go/rpcplus.NewServer函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论