Lightbus เป็นการนำไปใช้อย่างง่ายสำหรับการส่งข้อความแบบอะซิงโครนัส OneWay หรือด้วยการส่งคืนแอปพลิเคชัน. NET
ห้องสมุดมีให้บริการผ่านแพ็คเกจ NuGet:
Install-Package LightBus.Core
Install-Package LightBus.Microsoft.DependencyInjectiondotnet add package LightBus.Core
dotnet add package LightBus.Microsoft.DependencyInjectionหากคุณใช้ ASP.NET CORE เพียงติดตั้ง Lightbus.microsoft.DependencyInject แพ็คเกจนี้จะช่วยให้คุณสามารถลงทะเบียนตัวจัดการข้อความโดยอัตโนมัติเพียงแค่ใช้ sintax ด้านล่าง
public void ConfigureServices ( IServiceCollection services )
{
.. .
services . AddLightBus ( ) ;
.. .
} ในการสร้างข้อความนั้นง่ายมากคุณเพียงแค่ต้องเรียนและใช้อินเทอร์เฟซ IMessage ดังนี้ด้านล่าง
public class SampleMessage : IMessage
{
public string Value { get ; set ; }
} เช่นเดียวกับข้อความคุณเพียงแค่ต้องเรียนและนำไปใช้: IMessageHandler<TMessage> where TMessage: IMessage เช่นด้านล่าง
public class SampleMessageHandler : IMessageHandler < SampleMessage >
{
public Task HandleAsync ( SampleMessage message )
{
Debug . WriteLine ( message . Value ) ;
return Task . CompletedTask ;
}
} ในการทริกเกอร์ข้อความคุณจะต้องฉีดอินเทอร์เฟซ ILightBus และใช้ PushAsync<TMessage>(TMessage) เพื่อส่งข้อความเช่นด้านล่าง
[ Route ( "" ) ]
public class ValuesController : Controller
{
private readonly ILightBus _lightBus ;
public ValuesController ( ILightBus lightBus )
{
_lightBus = lightBus ;
}
[ HttpGet ]
public async Task < string > Get ( )
{
await _lightBus . PushAsync (
new SampleMessage { Value = "Hello LightBus" } ) ;
return "Ok" ;
}
} ในการสร้างข้อความนั้นง่ายมากคุณเพียงแค่ต้องเรียนและใช้อินเทอร์เฟซ IMessage<out Response> เช่นเดียวกับด้านล่าง
public class SampleMessageResponse : IMessage < string >
{
public string Value { get ; set ; }
} เช่นเดียวกับข้อความคุณเพียงแค่ต้องเรียนและนำไปใช้: IMessageHandler<TMessage, TResponse> where TMessage: IMessage<TResponse> อินเทอร์เฟซด้านล่างเช่นเดียวกับด้านล่าง
public class SampleMessageHandler : IMessageHandler < SampleMessageResponse , string >
{
public Task < string > HandleAsync ( SampleMessageResponse message )
{
return Task . FromResult ( $ "Hello { message . Value } " ) ;
}
} ในการทริกเกอร์ข้อความคุณจะต้องฉีดอินเทอร์เฟซ ILightBus และใช้ Task<TResponse> SendAsync<TMessage, TResponse>(Action<TMessage> messageHandler = null) เพื่อส่งข้อความเช่นด้านล่าง
[ Route ( "" ) ]
public class ValuesController : Controller
{
private readonly ILightBus _lightBus ;
public ValuesController ( ILightBus lightBus )
{
_lightBus = lightBus ;
}
[ HttpGet ]
public async Task < string > Get ( )
{
await _lightBus . SendAsync < SampleMessageResponse , string > ( msg => msg . Value = "LightBus" ) ;
}
}