gorilla/rpc

registering function as a service

krisiasty opened this issue · 3 comments

I would like to handle method names which are not in a form "Service.Method", whch seems currently imposible.

One way to handle this would be to have *(Server) RegisterFunc method accepting function and string with a method name as parameters.

Example usage:

func HeartBeat(r *http.Request, args *HeartBeatArgs, reply *HeartBeatReply) error {
    reply.TimeStamp = time.Now().UnixNano()
}

s := rpc.NewServer()
s.RegisterService(heartBeat, "heartBeat")

That way any call with method "heartBeat" should be directed to function HeartBeat.

I would also like to know if this is possible. I suspect either using a custom codec or intercepting the http request would make this possible. Any thoughts?

Looking at

serviceSpec, methodSpec, errGet := s.services.get(method)
it seems that Intercept nor Before functions would get the chance to modify the method/service name before an error is thrown.

Hit the same issue, but found the solution in divan/gorilla-xmlrpc#14