30 lines
784 B
Plaintext
30 lines
784 B
Plaintext
![]() |
@startuml "Messaging with server delivery"
|
||
|
actor Sender as snd
|
||
|
actor Receiver as rcv
|
||
|
control Server as srv
|
||
|
collections msg as msg
|
||
|
queue msgch as msgch
|
||
|
collections dvyrq as dvyrq
|
||
|
collections dvy as dvy
|
||
|
queue dvych as dvych
|
||
|
|
||
|
|
||
|
rcv->srv: Listen for messages
|
||
|
srv->msgch: Subscribe
|
||
|
snd->srv: Send message with delivery uid
|
||
|
snd->msg: Listen for delivery
|
||
|
|
||
|
group storeMessage
|
||
|
srv->msg: Store message
|
||
|
srv->dvyrq: Store delivery request uid=>Receiver
|
||
|
srv->msgch: Notify listening receivers
|
||
|
end
|
||
|
msgch->srv: Notify
|
||
|
msg->srv: Grab message
|
||
|
srv->rcv: Cuts listening with message
|
||
|
srv->dvy: Store delivery done Receiver=>uid
|
||
|
srv->dvych: Notify listening Sender
|
||
|
dvych->srv: Notify
|
||
|
dvy->srv: Grab delivery
|
||
|
srv->snd: Cuts listening with delivery
|
||
|
@enduml
|