我正在为IPC通信方面评估.net核心2.0。我确实发现.Net核心在服务器端不支持WCF。任何人都可以帮助我,.Net核心中的替代方案,可以用于进程间通信以及回调(用于发布 - 订阅)模型。
谢谢。
答案 0 :(得分:2)
如果您准备进入低级别,那么您可以使用named pipes。但是你必须自己实现发布/订阅模式。
在更高级别,您可以查看像ZeroMQ / NetMQ这样的库 - 这些是在套接字之上的非常薄的层,支持各种模式(如发布/订阅)。
更高级别的是真正的消息队列 - Rabbit MQ。
当然,本机方式是使用ASP.NET Core的Web API。
答案 1 :(得分:0)
我也有类似的需求,但是现有的解决方案对于我的喜好有太多依赖性,并且不支持正确的双向通信。
所以我写了PipeMethodCalls包:
var pipeServer = new PipeServerWithCallback<IConcatenator, IAdder>("testpipe", () => new Adder());
await pipeServer.WaitForConnectionAsync();
string concatResult = await pipeServer.InvokeAsync(c => c.Concatenate("a", "b"));
var pipeClient = new PipeClientWithCallback<IAdder, IConcatenator>("mypipe", () => new Concatenator());
await pipeClient.ConnectAsync();
int result = await pipeClient.InvokeAsync(a => a.AddNumbers(4, 7));
它将方法名称和参数序列化为JSON,在另一端调用它,然后将响应打包以发送回去。