美文网首页程序员AppWorkerHprose
NetCore下使用RPC框架Hprose

NetCore下使用RPC框架Hprose

作者: voxer | 来源:发表于2018-06-13 16:24 被阅读20次

Hprose是国内非常优秀的RPC框架,和其它RPC框架比较起来,其它框架一般需要定义一个接口文件,通过工具把接口文件转化成服务端和客户端对应的代码(可以跨语言),客户端和服务端把这些生成的代码集成到自己的项目里,一旦接口发生变化,需要重新执行这个操作。

Hprose进一步简化,无需这个步骤,直接服务端生成函数给客户端使用。另外Hprose支持的语言非常多,一直在更新中。

我们前期不少项目都在使用Hprose,一般用在替代http的web api上,开发效率比直接使用restful接口高很多,近期后台从.Net转.NetCore碰到一点小问题,简单总结一下。

Nuget上下载的hprose-dotnet最新版本是1.5.7,和原作者交流才知道1.5.8才是支持NetCore的版本,1.5.8下载地址是https://github.com/hprose/hprose-dotnet/releases/tag/v1.5.8 .原作者正在准备最新的3.0版本了。

下载测试后发现同样的代码在.Net下没有问题,在NetCore下还是有一个nullpointer错误,把Hprose的源码加入调试发现一个小问题,直接修改并重新生成了一个hprose.client.dll,大家可以在我的Github上下载。

最后在放一个简单的例子,算是给没接触过Hprose的同学一个直观的感受。例子包括用NetCore实现的client和server,下载地址都在Github

  • server端
    class TestService
    {
        public string Hello(string name)
        {
            return "Hello " + name + "!";
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            HproseHttpListenerServer server = new HproseHttpListenerServer("http://localhost:2012/");
            TestService ts = new TestService();
            server.Add("Hello", ts);
            server.IsCrossDomainEnabled = true;
            //server.CrossDomainXmlFile = "crossdomain.xml";
            server.Start();
            Console.WriteLine("Server started.");
            Console.ReadLine();
            Console.WriteLine("Server stopped.");
        }
    }
  • client端

static void Main(string[] args)
        {
            HproseHttpClient client = new HproseHttpClient(" http://localhost:2012/");
            client.KeepAlive = true;
            Console.WriteLine(client.Invoke("Hello",new Object[]{"bbbb"}));
            Console.WriteLine(client.Invoke("hello",new Object[]{"cccc"}));
            Console.ReadLine();
        }

AppWorker官方马上也会推出do_Hprose组件来支持在Android和iOS下通过hprose和服务端通信。

相关文章

  • NetCore下使用RPC框架Hprose

    Hprose是国内非常优秀的RPC框架,和其它RPC框架比较起来,其它框架一般需要定义一个接口文件,通过工具把接口...

  • PHP RPC框架 hprose 上手玩玩

    RPC是啥? 远程过程调用, 简单来说就是 另一种api调用的形式, 不过是在tcp层次的。例子:php 7.2....

  • RPC - 入门

    本文的示例代码参考rpc-hprose 目录 HTTPServerClientPackage TCPServerC...

  • RPC - 实战

    本文的示例代码参考rpc-hprose 目录 Serverstartupserviceroute Clientst...

  • Hprose-ruby与Rails结合使用心得

    Hprose是一个不错在RPC协议引擎,开源、简洁、高效、易用,支持多种语言。下面是选取Hprose-ruby与R...

  • Laravel框架RPC解决方案--Hprose

    Hprose for Laravel HPROSE 是 High Performance Remote Objec...

  • 基于netty手写rpc

    rpc简介 RPC是远程过程调用(Remote Procedure Call),比如Dubbo框架就是使用rpc原...

  • golang中的net/rpc包

    本文先介绍RPC,然后go原生对RPC的使用,之后是介绍go语言中有哪些RPC框架以及一些其他常见的框架,最后是探...

  • 分布式RPC框架

    RPC是什么?为什么要使用RPC?开源的RPC框架有哪些?它有什么优势?基于TCP和HTTP协议的RPC调用有什么...

  • PHP环境下使用ProtoBuf

    前言   RPC是google公司主导的一款RPC框架,并使用protobuf作为数据传输格式,伴随gRPC框架的...

网友评论

    本文标题:NetCore下使用RPC框架Hprose

    本文链接:https://www.haomeiwen.com/subject/gevjeftx.html