Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Marat Pavlov
/
AlexAdapter
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
3004d43e
authored
Mar 02, 2022
by
Alex Nasyr
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
produce / consume msgs added
parent
71d80092
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
41 additions
and
21 deletions
DDO_Application/Controllers/apiController.cs
DDO_Application/Model/ActiveMqExtensions.cs
DDO_Application/Model/MessageCunsomer.cs
DDO_Application/Model/configActiveMQ.cs
DDO_Application/Startup.cs
DDO_Application/appsettings.json
DDO_Application/Controllers/apiController.cs
View file @
3004d43e
...
...
@@ -16,7 +16,7 @@ namespace DDO_Application.Controllers {
public
IServiceProvider
Services
{
get
;
}
public
apiController
(
IServiceProvider
services
,
MessageProducer
messageProducer
)
{
public
apiController
(
IServiceProvider
services
,
MessageProducer
messageProducer
,
MessageCunsomer
messageCunsomer
)
{
Services
=
services
;
using
(
var
scope
=
Services
.
CreateScope
())
{
...
...
@@ -26,6 +26,7 @@ namespace DDO_Application.Controllers {
_apiService
=
uploadProcessingService
;
}
_messageProducer
=
messageProducer
;
_messageCunsomer
=
messageCunsomer
;
}
[
HttpGet
]
...
...
@@ -40,16 +41,10 @@ namespace DDO_Application.Controllers {
[
HttpPost
]
[
Route
(
"[controller]/sendmsg/{msg}"
)]
public
async
Task
<
IActionResult
>
SendMessage
(
string
msg
)
{
var
@event
=
new
ReceivedMessage
{
Id
=
1
,
Message
=
"hello"
};
var
@event
=
new
ReceivedMessage
{
Id
=
1
,
Message
=
msg
};
await
_messageProducer
.
PublishAsync
(
@event
);
return
StatusCode
((
int
)
HttpStatusCode
.
Created
,
null
);
}
[
HttpPost
]
[
Route
(
"[controller]/receivemsg"
)]
public
async
Task
<
IActionResult
>
ReceiveMessage
()
{
return
StatusCode
((
int
)
HttpStatusCode
.
Created
,
null
);
}
}
public
class
apiStatus
{
...
...
DDO_Application/Model/ActiveMqExtensions.cs
View file @
3004d43e
using
ActiveMQ.Artemis.Client
;
using
ActiveMQ.Artemis.Client.Extensions.DependencyInjection
;
using
ActiveMQ.Artemis.Client.Transactions
;
using
Microsoft.Extensions.DependencyInjection
;
using
Microsoft.Extensions.DependencyInjection.Extensions
;
using
System
;
...
...
@@ -11,14 +12,7 @@ namespace DDO_Application.Model {
public
static
class
ActiveMqExtensions
{
public
static
IActiveMqBuilder
AddTypedConsumer
<
TMessage
,
TConsumer
>(
this
IActiveMqBuilder
builder
,
RoutingType
routingType
)
where
TConsumer
:
class
,
ITypedConsumer
<
TMessage
>
{
builder
.
Services
.
TryAddScoped
<
TConsumer
>();
builder
.
AddConsumer
(
typeof
(
TMessage
).
Name
,
routingType
,
HandleMessage
<
TMessage
,
TConsumer
>);
return
builder
;
}
public
static
IActiveMqBuilder
AddTypedConsumer
<
TMessage
,
TConsumer
>(
this
IActiveMqBuilder
builder
,
RoutingType
routingType
,
string
queue
)
where
TConsumer
:
class
,
ITypedConsumer
<
TMessage
>
{
builder
.
Services
.
TryAddScoped
<
TConsumer
>();
var
address
=
typeof
(
TMessage
).
Name
;
var
queueName
=
$"
{
queue
}
"
;
builder
.
AddConsumer
(
address
,
routingType
,
queueName
,
HandleMessage
<
TMessage
,
TConsumer
>);
builder
.
AddConsumer
(
"test"
,
routingType
,
HandleMessage
<
TMessage
,
TConsumer
>);
return
builder
;
}
...
...
DDO_Application/Model/MessageCunsomer.cs
View file @
3004d43e
...
...
@@ -7,7 +7,12 @@ using ActiveMQ.Artemis.Client.Transactions;
namespace
DDO_Application.Model
{
public
class
MessageCunsomer
:
ITypedConsumer
<
ReceivedMessage
>
{
public
MessageCunsomer
()
{
}
public
async
Task
ConsumeAsync
(
ReceivedMessage
message
,
CancellationToken
cancellationToken
)
{
Console
.
WriteLine
(
message
);
}
}
...
...
DDO_Application/Model/configActiveMQ.cs
0 → 100644
View file @
3004d43e
using
ActiveMQ.Artemis.Client
;
namespace
DDO_Application.Model
{
public
class
configActiveMQ
{
public
string
Host
{
get
;
set
;
}
public
int
Port
{
get
;
set
;
}
public
string
User
{
get
;
set
;
}
public
string
Pass
{
get
;
set
;
}
public
Endpoint
Endpoint
=>
Endpoint
.
Create
(
Host
,
Port
,
User
,
Pass
);
}
}
DDO_Application/Startup.cs
View file @
3004d43e
...
...
@@ -28,21 +28,25 @@ namespace DDO_Application {
// This method gets called by the runtime. Use this method to add services to the container.
public
void
ConfigureServices
(
IServiceCollection
services
)
{
var
ActiveMQ
=
Configuration
.
GetSection
(
"ActiveMQ"
).
Get
<
configActiveMQ
>().
Endpoint
;
services
.
AddControllers
();
services
.
AddSwaggerGen
(
c
=>
{
c
.
SwaggerDoc
(
"v1"
,
new
OpenApiInfo
{
Title
=
"DDO_Application"
,
Version
=
"v1"
});
});
services
.
AddHostedService
<
ApiHostedService
>();
services
.
AddSingleton
<
IApiService
,
ApiProcessingService
>();
// turn enable ActiveMQ support in project
//services.AddActiveMq("ddoApp-cluster", new[] { Endpoint.Create(host: "192.168.2.19", port: 5672, "guest", "guest") })
services
.
AddActiveMq
(
"ddoApp-cluster"
,
new
[]
{
Endpoint
.
Create
(
host
:
"192.168.2.22"
,
port
:
5672
,
"guest"
,
"guest"
)
})
services
.
AddActiveMq
(
"ddoApp-cluster"
,
new
[]
{
ActiveMQ
})
.
AddAnonymousProducer
<
MessageProducer
>()
.
AddTypedConsumer
<
ReceivedMessage
,
MessageCunsomer
>(
RoutingType
.
Multicast
);
//.AddConsumer("test", RoutingType.Multicast, async (message, consumer, serviceProvider, cancellationToken) => {
// // your consuming logic
// await consumer.AcceptAsync(message);
//});
//.AddConsumer("test", RoutingType.Multicast, async (message, consumer, serviceProvider, cancellationToken) => {
// // your consuming logic
// await consumer.AcceptAsync(message);
//});
services
.
AddActiveMqHostedService
();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
...
...
DDO_Application/appsettings.json
View file @
3004d43e
{
"ActiveMQ"
:
{
"Host"
:
"192.168.2.22"
,
"Port"
:
5672
,
"User"
:
"guest"
,
"Pass"
:
"guest"
},
"Logging"
:
{
"LogLevel"
:
{
"Default"
:
"Information"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment