我正在评估.net核心2.0用于IPC通信方面。我确实发现.Net核心在服务器端不支持WCF。任何人都可以帮助我,.Net核心中的替代方案,可以用于进程间通信以及回调(用于发布 - 订阅)模型。
谢谢。
如果你准备好进入低级别,那么你可以使用named pipes。但是你必须自己实现发布/订阅模式。
在更高的层次上,您可以查看像ZeroMQ / NetMQ这样的库 - 这些是套接字顶部的非常薄的层,支持各种模式(如发布/订阅)。
更高级别的是真正的消息队列 - Rabbit MQ。
当然,本机方式是使用ASP.NET Core的Web API。
我有类似的需求,但现有的解决方案有太多依赖我喜欢并且不支持正确的双向通信。
所以我写了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,在另一侧调用它,然后打包响应以发回。