dollarkillerx.github.io

Server Plug-in

https://github.com/dollarkillerx/light/blob/main/server/options.go

Available configurations:

UseTCP

    ser := server.NewServer()
	err := ser.RegisterName(&HelloWorld{}, "helloworld")
	if err != nil {
		log.Fatalln(err)
	}

	if err := ser.Run(server.UseTCP("0.0.0.0:8074")); err != nil {
		log.Fatalln(err)
	}

UseUnix

    ser := server.NewServer()
	err := ser.RegisterName(&HelloWorld{}, "helloworld")
	if err != nil {
		log.Fatalln(err)
	}

	if err := ser.Run(server.UseUnix("light.sock")); err != nil {
		log.Fatalln(err)
	}

UseKCP

    ser := server.NewServer()
	err := ser.RegisterName(&HelloWorld{}, "helloworld")
	if err != nil {
		log.Fatalln(err)
	}

	if err := ser.Run(server.UseKCP("0.0.0.0:8674")); err != nil {
		log.Fatalln(err)
	}

SetTimeout

	ser := server.NewServer()
    err := ser.RegisterName(&HelloWorld{}, "helloworld")
    if err != nil {
        log.Fatalln(err)
    }
    
    if err := ser.Run(server.UseTCP("0.0.0.0:8074"), server.SetTimeout(time.Second * 60, time.Second * 3)); err != nil {
        log.Fatalln(err)
    }

SetAESCryptology

Official environment must be configured

	ser := server.NewServer()
    err := ser.RegisterName(&HelloWorld{}, "helloworld")
    if err != nil {
        log.Fatalln(err)
    }

    if err := ser.Run(server.UseTCP("0.0.0.0:8074"), server.SetAESCryptology([]byte("key Length 16 or 32"))); err != nil {
        log.Fatalln(err)
    }

SetAUTH

func main() {
	ser := server.NewServer()
	err := ser.RegisterName(&HelloWorld{}, "helloworld")
	if err != nil {
		log.Fatalln(err)
	}

	if err := ser.Run(server.UseTCP("0.0.0.0:8074"), server.SetAUTH(authFunc)); err != nil {
		log.Fatalln(err)
	}
}

func authFunc(ctx *light.Context, token string) error {
	if token == "token" {
		return nil
	}

	return errors.New("error 401")
}

SetDiscovery

	ser := server.NewServer()
	err := ser.RegisterName(&HelloWorld{}, "helloworld")
	if err != nil {
		log.Fatalln(err)
	}

	redisDiscovery, err := discovery.NewRedisDiscovery("127.0.0.1:6379", 10, nil)
	if err != nil {
		log.Fatalln(err)
	}
	if err := ser.Run(server.UseTCP("0.0.0.0:8074"), server.Trace(), server.SetDiscovery(redisDiscovery, "127.0.0.1:8074", 10)); err != nil {
		log.Fatalln(err)
	}

SetContext

	ser := server.NewServer()
    err := ser.RegisterName(&HelloWorld{}, "helloworld")
    if err != nil {
        log.Fatalln(err)
    }

    ctx := context.Background()
    if err := ser.Run(server.UseTCP("0.0.0.0:8074"), server.SetContext(ctx)); err != nil {
        log.Fatalln(err)
    }

Trace

	ser := server.NewServer()
    err := ser.RegisterName(&HelloWorld{}, "helloworld")
    if err != nil {
        log.Fatalln(err)
    }

    if err := ser.Run(server.UseTCP("0.0.0.0:8074"), server.Trace()); err != nil {
        log.Fatalln(err)
    }