我需要创建一个能够与其他本地进程进行高性能通信的进程。为此,我正在考虑使用.Net's named pipes,但我想知道创建一个ServiceStack host实现是多么容易(或可能),这样我们就可以利用其他SS功能?
答案 0 :(得分:1)
目前尚不支持.NET命名管道,但此would make a good feature request。
如果您想要实现自己,请查看Messaging integrates with ServiceStack如何从MQ服务器接受消息之后将其委派给ServiceController的ExecuteMessage()
API,例如:
public override void Configure(Container container)
{
container.Register<IMessageService>(c => new RabbitMqServer());
var mqServer = container.Resolve<IMessageService>();
mqServer.RegisterHandler<Hello>(m =>
ServiceController.ExecuteMessage(m));
mqServer.Start();
}
命名管道实现会做类似的事情,但您需要委托给ServiceController.Execute()。高效的实现也需要在有效使用线程时执行请求,以便服务器可以同时处理多个请求。