NetCore平台下使用RPC框架Hprose
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的更多相关文章
- .NET平台下一个你不知道的框架,我只想说两个字:“牛逼”
框架内容 零度框架是一套基于微服务和领域模型驱动设计的企业级快速开发框架,基于微软 .NET 6 + React 最新技术栈构建,容器化微服务最佳实践,零度框架的搭建以开发简单,多屏体验,前后端分离, ...
- [PHP]PHP rpc框架hprose测试
建立composer.json { "name": "hprose/examples", "description": "exam ...
- 6种微服务RPC框架,你知道几个?
开源 RPC 框架有哪些呢? 一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的. 跟语言平台绑定的开源 RPC 框架主要有下面几种. Dubbo:国内最早开源的 RPC 框架,由阿里巴 ...
- 6 种微服务 RPC 框架,你知道几个?
开源 RPC 框架有哪些呢? 一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的. 跟语言平台绑定的开源 RPC 框架主要有下面几种. Dubbo:国内最早开源的 RPC 框架,由阿里巴 ...
- 这次我设计了一款TPS百万级别的分布式、高性能、可扩展的RPC框架
作者:冰河 博客地址:https://binghe001.github.io 大家好,我是冰河~~ 没错,这次冰河又要搞事情了,这次准备下手的是RPC框架项目.为什么要对RPC框架项目下手呢,因为在如 ...
- RPC框架小结
为什么说要搞定微服务架构,先搞定RPC框架? 1. 为什么说要搞定微服务架构,先搞定RPC框架? 如果没有统一的服务框架,RPC框架,各个团队的服务提供方就需要各自实现一套序列化.反序列化.网络框架. ...
- RPC接口测试(一)什么是 RPC 框架
什么是 RPC 框架 RPC 框架----- 远程过程调用协议RPC(Remote Procedure Call Protocol)-----允许像调用本地服务一样调用远程服务. RPC是指远程过程调 ...
- [转]新兵训练营系列课程——平台RPC框架介绍
原文:http://weibo.com/p/1001643875439147097368 课程大纲 1.RPC简介 1.1 什么是RPC 1.2 RPC与其他远程调用方式比较 2.Motan RPC框 ...
- 手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc
前言 一直以来对内部服务间使用RPC的方式调用都比较赞同,因为内部间没有这么多限制,最简单明了的方式就是最合适的方式.个人比较喜欢类似Dubbo的那种使用方式,把接口层单独出来,作为服务的契约 ...
随机推荐
- Transactional参数说明
参数 说明 readOnly 该属性用于设置当前事务是否为只读事务,设置为true表示只读,false则表示可读写,默认值为false.例如:@Transactional(readOnly=tru ...
- JavaBean理解
Java语言欠缺属性.事件.多重继承功能.所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码.Java Bean正是编写这套胶水代码的惯用模式或约定.这些约定包括getX ...
- java的小程序在html中的运行测试
java的小程序在html中的运行测试,打开vs2012,以网站模式打开,生成,调用iis临时服务器运行.
- 容错机制和熔断(Hystrix)
雪崩效应 在微服务架构中,由于服务众多,通常会涉及多个服务层级的调用,而一旦基础服务发生故障,很可能会导致级联故障,进而造成整个系统不可用,这种现象被称为服务雪崩效应.服务雪崩效应是一种因“服务提供者 ...
- 摄像头录制视频并且保存成mp4
import cv2import numpy as npimport os cap = cv2.VideoCapture(1)#v4l2-ctl --list-devices 查看设备号,非正常中断时 ...
- unity中实现三个Logo图片进行3秒钟的若隐若现后互相切换Logo图片
private List<Sprite> storeTexture; public void Start() { storeTexture = new List<Sprite> ...
- Unity中UI界面颤抖解决方法
将Render Mode中属性改为Screen Space - Camera 摄像机挂在Canvas属性下会出现UI界面颤抖的效果. UI界面颤抖解决方式:将Render Mode中属性改为Scree ...
- bzoj1238
题解: 傻逼模拟题 果断的复制了题解(还没有c++题解?) 代码: program p2509; type arr=array[..] of boolean; var tot:longint; s:a ...
- caffe中全卷积层和全连接层训练参数如何确定
今天来仔细讲一下卷基层和全连接层训练参数个数如何确定的问题.我们以Mnist为例,首先贴出网络配置文件: name: "LeNet" layer { name: "mni ...
- Buffer与Cache区别 简要说明
Buffer – 缓冲区 写 用户写入数据存储区域 解决写入冲突 CPU-Memoury-Disk Cache – 缓存区 读 用户读取缓存数据使用 临时存储 Disk-memo ...