┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: wait for EnquireLink sent (350ms) ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: : │
: : │
│ │ │
├─┐ send(Sms(sms content 2 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: wait for 2 EnquireLink sent (650ms) : │
: : │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: : │
: : │
│ │ │
├─┐ send(Sms(sms content 3 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
: ├─┐ wait(200ms) │
: │<┘ │
: │ send EnquireLink │
: wait for EnquireLink failure (400ms) ├─────────────────────────────────────────────>│
: │ response │
: │ ├─┐ wait(300ms)
: ├─┐ timeout (100ms) │ │
: │<┘ │ │
│ │ │ :
│ unbind [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ disconnected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ connect [session 2] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: : │
: still waiting : │
: : │
│ │ │
│ │ │
├─┐ send(Sms(sms content 2 / session 2)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
│ │ ├─┐ stop() (?) session is closed by the server => need a new session
│ │ │<┘
│ │ │
├─┐ send(Sms(can't be sent)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ /!\ failure │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ unbind [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ disconnected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ connect [session 2] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│ (?) automatic reconnection (may be tried several times)
│ │ │
: │ ├─┐ start()
: │ │<┘
: wait for reconnection │ │
: │ │
: │ │
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
├─┐ send(Sms(sms content 2 / session 2)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: wait for EnquireLink sent (350ms) ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: │ │
│ │ │
│ │ │
├─┐ send(Sms(sms content 3 / session 2)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(300ms) ├─┐ stop() (?) session is closed by the server => need a new session
: │ │ │<┘
: │ │ ├─┐ start()
: │ │ │<┘
: │ │ │
: wait for EnquireLink failure (350ms) │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ /!\ failure │ (?) ClosedChannelException
: │<─────────────────────────────────────────────┤
: │ │
│ │ │
│ │ │
│ unbind [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ disconnected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ connect [session 2] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: : │
: still waiting : │
: : │
│ │ │
│ │ │
├─┐ send(Sms(sms content 2 / session 2)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(200ms) ├─┐ stop() (?) session is closed by the server => need a new session
: │ │ │<┘
: │ │ │
: │ │ │
: │ │ │
: wait for maximum reconnection attempts │<┘ │
: (1500ms) │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ /!\ failure │ (?) ClosedChannelException
: │<─────────────────────────────────────────────┤
: │ │
: : │
: : │
: unbind [session 1] : │
:────────────────────────────────────────────────────────────────────────────────────────────>│
: : disconnected │
:<────────────────────────────────────────────────────────────────────────────────────────────┤
: : │
: connect (tried 5 times) : │
:────────────────────────────────────────────────────────────────────────────────────────────>│
: : /!\ failure │ (?) Retried 5 times
:<────────────────────────────────────────────────────────────────────────────────────────────┤
: : │
: : │
: still waiting for maximum attempts : │
: : │
: : │
├─┐ clean() │ │
│<┘ │ │
│ │ │
│ │ ├─┐ start()
│ │ │<┘
│ │ │
├─┐ send(Sms(sms content 2 / session 2)) │ │
│<┘ │ │
│ connect [session 2] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ init │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: wait for EnquireLink sent (350ms) ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: : │
: : │
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
├─┐ send(Sms(sms content 2 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: wait for 2 EnquireLink sent (650ms) : │
: : │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: : │
: : │
│ │ │
├─┐ send(Sms(sms content 3 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
MultiContentHandler
class.MultiContentHandler
class.PriorizedContentHandler
class.PriorizedContentHandler
class.
┌─────────┐ ┌─────────┐
│ Client │ │ Server │
└────┬────┘ └────┬────┘
│ ├─┐ start()
│ │<┘
│ │
│ │
├─┐ send(Sms(sms content 1 / session 1)) │
│<┘ │
│ connect [session 1] │
├─────────────────────────────────────────────>│
│ connected │
│<─────────────────────────────────────────────┤
│ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ │
: :
: wait for expiration of last request (200ms) : (?) expiration is configured to 100ms (=> need to send EnquireLink)
: :
│ │
│ │
├─┐ send(Sms(sms content 2 / session 1)) │
│<┘ │
│ send EnquireLink │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ │
: :
: wait for expiration of last request (200ms) : (?) expiration is configured to 100ms (=> need to send EnquireLink)
: :
│ │
│ │
├─┐ send(Sms(sms content 3 / session 1)) │
│<┘ │
│ send EnquireLink │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
┌─────────┐ ┌─────────┐
│ Client │ │ Server │
└────┬────┘ └────┬────┘
│ ├─┐ start()
│ │<┘
│ │
│ │
├─┐ send(Sms(sms content 1 / session 1)) │
│<┘ │
│ connect [session 1] │
├─────────────────────────────────────────────>│
│ connected │
│<─────────────────────────────────────────────┤
│ │
│ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ │
: :
: wait for expiration of last request (50ms) : (?) expiration is configured to 20ms
: :
│ │
│ │
├─┐ send(Sms(sms content 2 / session 2)) │
│<┘ │
│ send EnquireLink │
├─────────────────────────────────────────────>│
│ ├─┐ wait(300ms)
├─┐ timeout (100ms) │ │
│<┘ │ │
│ │ :
│ │
│ unbind [session 1] │
├─────────────────────────────────────────────>│
│ disconnected │
│<─────────────────────────────────────────────┤
│ │
│ connect [session 2] │
├─────────────────────────────────────────────>│
│ connected │
│<─────────────────────────────────────────────┤
│ │
│ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
┌─────────┐ ┌─────────┐
│ Client │ │ Server │
└────┬────┘ └────┬────┘
│ ├─┐ start()
│ │<┘
│ │
│ │
├─┐ send(Sms(sms content 1 / session 1)) │
│<┘ │
│ connect [session 1] │
├─────────────────────────────────────────────>│
│ connected │
│<─────────────────────────────────────────────┤
│ │
│ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ │
│ ├─┐ stop() (?) session is closed by the server => need a new session
│ │<┘
│ │
├─┐ send(Sms(can't be sent)) │
│<┘ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ /!\ failure │
│<─────────────────────────────────────────────┤
│ │
├─┐ closing [session 1] │
│<┘ │
│ unbind [session 1] │
├─────────────────────────────────────────────>│
│ disconnected │
│<─────────────────────────────────────────────┤
│ │
: ├─┐ start()
: │<┘
: wait for server ready │
: │
: │
├─┐ send(Sms(sms content 2 / session 2)) │
│<┘ │
│ connect [session 2] │
├─────────────────────────────────────────────>│
│ connected │
│<─────────────────────────────────────────────┤
│ │
│ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ │
│ │
│ ├─┐ wait(200ms)
│ │<┘
: :
: wait for expiration of last request (200ms) : (?) expiration is configured to 100ms (=> need to send EnquireLink)
: :
│ │
│ │
│ │
├─┐ send(Sms(sms content 3 / session 2)) │
│<┘ │
│ send EnquireLink │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
┌─────────┐ ┌─────────┐
│ Client │ │ Server │
└────┬────┘ └────┬────┘
│ ├─┐ start()
│ │<┘
│ │
│ │
├─┐ send(Sms(sms content 1 / session 1)) │
│<┘ │
│ connect [session 1] │
├─────────────────────────────────────────────>│
│ connected │
│<─────────────────────────────────────────────┤
│ │
│ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ │
: :
: wait for expiration of last request (200ms) : (?) expiration is configured to 100ms (=> need to send EnquireLink)
: :
│ │
│ │
├─┐ send(Sms(sms content 2 / session 1)) │
│<┘ │
│ send EnquireLink │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ ├─┐ wait(200ms)
│ │<┘
: :
: wait for expiration of last request (200ms) : (?) expiration is configured to 100ms (=> need to send EnquireLink)
: :
│ │
│ │
: :
: wait for reception of messages :
: :
│ │
│ ├─┐ stop() (?) session is closed by the server => need a new session
│ │<┘
│ ├─┐ start()
│ │<┘
│ │
├─┐ send(Sms(sms content 3 / session 2)) │
│<┘ │
│ send EnquireLink │
├─────────────────────────────────────────────>│
│ /!\ failure │ (?) ClosedChannelException
│<─────────────────────────────────────────────┤
├─┐ closing [session 1] │
│<┘ │
│ │
│ connect [session 2] │
├─────────────────────────────────────────────>│
│ connected │
│<─────────────────────────────────────────────┤
│ │
│ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ │
│ │
│ │
├─┐ send(Sms(sms content 4 / session 2)) │
│<┘ │
│ │
│ send SubmitSm │
├─────────────────────────────────────────────>│
│ response │
│<─────────────────────────────────────────────┤
│ │
SendGridV2Builder
class.SendGridV4Builder
class.ogham
and the
SendGridV2Sender
class.ogham
and the
SendGridV4Sender
class.StringContentHandler
class.StringContentHandler
class.Copyright © 2021. All rights reserved.