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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决Bui框架下拉框select配合Gi
- 下一篇: 微软Teams中国版携创新功能正式发布