golang原生http和rpc服务集成

今天做了个小实验,验证了用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调用一样了。

    原文作者:从火星来
    原文地址: https://www.jianshu.com/p/5d0c34433bbc
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞