func main() { server1 := rpcx.NewServer() server1.RegisterName("Arith", new(Arith)) server1.Start("tcp", "127.0.0.1:8972") server2 := rpcx.NewServer() server2.RegisterName("Arith", new(Arith2)) server2.Serve("tcp", "127.0.0.1:8973") }
func main() { flag.Parse() server := rpcx.NewServer() server.ServerCodecFunc = codec.NewProtobufServerCodec server.RegisterName("Hello", new(Hello)) server.Serve("tcp", *host) }
func main() { server := rpcx.NewServer() plugin := &plugin.EtcdRegisterPlugin{ ServiceAddress: "[email protected]:8972", EtcdServers: []string{"http://127.0.0.1:2379"}, BasePath: "/rpcx", Metrics: metrics.NewRegistry(), Services: make([]string, 1), UpdateInterval: time.Minute, } plugin.Start() server.PluginContainer.Add(plugin) server.RegisterName("Arith", new(Arith)) server.Serve("tcp", "127.0.0.1:8972") }
func main() { server := rpcx.NewServer() fn := func(p *rpcx.AuthorizationAndServiceMethod) error { if p.Authorization != "0b79bab50daca910b000d4f1a2b675d604257e42" || p.Tag != "Bearer" { fmt.Printf("error: wrong Authorization: %s, %s\n", p.Authorization, p.Tag) return errors.New("Authorization failed ") } fmt.Printf("Authorization success: %+v\n", p) return nil } server.Auth(fn) server.RegisterName("Arith", new(Arith)) server.Serve("tcp", "127.0.0.1:8972") }
func TestGobCodec(t *testing.T) { server := rpcx.NewServer() server.ServerCodecFunc = NewGobServerCodec server.RegisterName(serviceName, service) server.Start("tcp", "127.0.0.1:0") serverAddr := server.Address() s := &rpcx.DirectClientSelector{Network: "tcp", Address: serverAddr} client := rpcx.NewClient(s) client.ClientCodecFunc = NewGobClientCodec args := &Args{7, 8} var reply Reply err := client.Call(serviceMethodName, args, &reply) if err != nil { t.Errorf("error for Arith: %d*%d, %v \n", args.A, args.B, err) } client.Close() }