今天做了个小实验,验证了用go语言的原生http模块和编写的http服务器可以利用rpc模块同时提供rpc调用功能。但是遗憾的是,如果是用fcgi模块编写的服务器就不能集成rpc服务。
关键点:
第一,rpc功能要用rpc.NewServer新建服务对象,不能用默认对象,因为只有新建对象的HandleHTTP可以设置http访问路径。它的第一个参数是http访问路径,第二个参数是调试器路径,可以通过浏览器看运行情况。
第二,http.Serve第二个参数必须是nil,否则rpc服务器就不能被调用,因此其它页面渲染函数都要用http.HandleFunc设置路由。
客户端调用方法:
rpc连接要用rpc.DialHTTPPath,第三个参数是http路径,要和上面的HandleHTTP第一个参数一致。连接上后用法就和普通rpc调用一样了。