IPC使用支持双工通道或回调的.Net内核

问题描述 投票:2回答:2

我正在评估.net核心2.0用于IPC通信方面。我确实发现.Net核心在服务器端不支持WCF。任何人都可以帮助我,.Net核心中的替代方案,可以用于进程间通信以及回调(用于发布 - 订阅)模型。

谢谢。

wcf callback .net-core ipc
2个回答
2
投票

如果你准备好进入低级别,那么你可以使用named pipes。但是你必须自己实现发布/订阅模式。

在更高的层次上,您可以查看像ZeroMQ / NetMQ这样的库 - 这些是套接字顶部的非常薄的层,支持各种模式(如发布/订阅)。

更高级别的是真正的消息队列 - Rabbit MQ

当然,本机方式是使用ASP.NET Core的Web API。


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,在另一侧调用它,然后打包响应以发回。

© www.soinside.com 2019 - 2024. All rights reserved.