У нас есть приложение, работающее с различными службами (c#,. NET Core) LOCAL на Windows P C.
Теперь мне нужен какой-то механизм для информирования всех заинтересованных служб, если данные изменились в одном сервисе (какой-то шаблон наблюдателя для микросервисов или какой-то механизм MQTT (pub / sub) c# и. NET Основные микросервисы, локально работающие на windows p c).
Сначала я хочу использовать сокеты, но в документации Windows говорится, что вместо этого используйте Signalr.
Итак, вот что у меня есть:
public class Startup
{
public Startup()
{
// empty
}
public void ConfigureServices(IServiceCollection services)
{
// Add services.
//Test bidirectional communication (pub / sub Pattern over SignalR groups)
services.AddSignalR();
// Add the localization services to the services container.
services.AddLocalization(options => options.ResourcesPath = "Properties");
services.AddMvc()
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseStaticFiles();
// Use sessions
// The order of middleware is important.
// An InvalidOperationException exception will occur when UseSession is invoked after UseMvc.
app.UseSession();
//Test bidirectional communication (pub / sub Pattern over SignalR groups)
//The SignalR Hubs API enables you to call methods on connected clients from the server.
//In the server code, you define methods that are called by client. In the client code, you define methods that are called from the server.
app.UseSignalR(routes =>
{
routes.MapHub<SignalRHub>("/SignalRHub");
});
app.UseMvc(
routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
Для. NET Служба CORE Но мне сейчас нужен клиент для c# System.Web.Http.ApiController
и я не могу найти пример.
Кажется, некоторые смущены нашей "красивой" архитектурой ;-) Я надеюсь, что следующая картина делает это более понятным:
Таким образом, если приложение 1 изменяет данные в микросервисе 2, то приложение 2 должно быть проинформировано. И снова, все это работает локально на Windows P C, облака не задействованы.