NetCore下使用RPC框架Hprose

https://www.jianshu.com/p/c903fca44d5d

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和服务端通信。

作者:voxer
链接:https://www.jianshu.com/p/c903fca44d5d
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

NetCore平台下使用RPC框架Hprose的更多相关文章

  1. .NET平台下一个你不知道的框架,我只想说两个字:“牛逼”

    框架内容 零度框架是一套基于微服务和领域模型驱动设计的企业级快速开发框架,基于微软 .NET 6 + React 最新技术栈构建,容器化微服务最佳实践,零度框架的搭建以开发简单,多屏体验,前后端分离, ...

  2. [PHP]PHP rpc框架hprose测试

    建立composer.json { "name": "hprose/examples", "description": "exam ...

  3. 6种微服务RPC框架,你知道几个?

    开源 RPC 框架有哪些呢? 一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的. 跟语言平台绑定的开源 RPC 框架主要有下面几种. Dubbo:国内最早开源的 RPC 框架,由阿里巴 ...

  4. 6 种微服务 RPC 框架,你知道几个?

    开源 RPC 框架有哪些呢? 一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的. 跟语言平台绑定的开源 RPC 框架主要有下面几种. Dubbo:国内最早开源的 RPC 框架,由阿里巴 ...

  5. 这次我设计了一款TPS百万级别的分布式、高性能、可扩展的RPC框架

    作者:冰河 博客地址:https://binghe001.github.io 大家好,我是冰河~~ 没错,这次冰河又要搞事情了,这次准备下手的是RPC框架项目.为什么要对RPC框架项目下手呢,因为在如 ...

  6. RPC框架小结

    为什么说要搞定微服务架构,先搞定RPC框架? 1. 为什么说要搞定微服务架构,先搞定RPC框架? 如果没有统一的服务框架,RPC框架,各个团队的服务提供方就需要各自实现一套序列化.反序列化.网络框架. ...

  7. RPC接口测试(一)什么是 RPC 框架

    什么是 RPC 框架 RPC 框架----- 远程过程调用协议RPC(Remote Procedure Call Protocol)-----允许像调用本地服务一样调用远程服务. RPC是指远程过程调 ...

  8. [转]新兵训练营系列课程——平台RPC框架介绍

    原文:http://weibo.com/p/1001643875439147097368 课程大纲 1.RPC简介 1.1 什么是RPC 1.2 RPC与其他远程调用方式比较 2.Motan RPC框 ...

  9. 手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc

    前言     一直以来对内部服务间使用RPC的方式调用都比较赞同,因为内部间没有这么多限制,最简单明了的方式就是最合适的方式.个人比较喜欢类似Dubbo的那种使用方式,把接口层单独出来,作为服务的契约 ...

随机推荐

  1. IO库----IO类,文件输入输出,string流

    一.IO类 1.IO库类型和头文件表: 头文件 类型 iostream istream,wistream 从流读取数据 ostream,wostream 向流写入数据 iostream,wiostre ...

  2. php数组判断值相等时出现的次数,0,1,2这样的

    方法1: $arr = array(array( 0=> array('a'=>1), 1=> array('a'=>3), 2=> array('a'=>4), ...

  3. hdu3518

    题解: 后缀数组 枚举长度为k(1<=k<=len/2)的满足要求的子串个数 代码: #include<cstdio> #include<cmath> #inclu ...

  4. bzoj3879

    题解: 后缀数组 然后把读入的内容去重,按照rank排序 然后用单调栈处理一下 代码: #include<bits/stdc++.h> using namespace std; typed ...

  5. OO第二次课程总结分析

    前几次的作业都是单线程的,总体来说和以前的思维模式和调试等存在着一定的挂钩,在设计上整体难度还不算太大,这次开始了多线程编程,难度可以说是质的飞跃,构思上所考虑的不止一点两点,在整体的基础上还要考虑线 ...

  6. sqlalchemy 模型中添加根据身份证号计算性别和年龄

    class Users(Base, BaseMixin): username = Column(String(24)) id_Num = Column(String(18) ) # 身份证号码 @pr ...

  7. Qt简单项目--加法计算器(详细代码注释)

    Qt的简单案例--加法计算器(详细代码注释) 一.项目结构 二.项目代码 widget.h #ifndef WIDGET_H #define WIDGET_H //预编译指令, 为了避免头文件被重复包 ...

  8. 关于netcore 发布到服务器的准备

    1.先cmd到指定的网站目录, 然后执行 dotnet xxx.dll, 浏览器查看 localhost:5000 确认没有问题之后才去部署到iis

  9. ios 第4天

    dealloc method  会在对象释放前调用这个方法(函数)  可以让对象在释放前把一些自己申请的对象 先释放了    满足 谁申请  谁释放 的原则 例如    dealloc 会自动调用   ...

  10. L249 语法

    Even when homeless individuals manage to find a shelter that will give them three meals a day and a ...