Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Update subscription cancellation (and image proportions)

...

  1. Pico A receives a wrangler:subscription event that includes the following attributes:
    1. name - name of subscription (if none is supplied, a random subscription name will be generated)
    2. name_space - name space for subscription (if none is supplied shared will be used as the name space)
    3. my_role - Pico A's role in the subscription (if none is supplied, peer will be used for the role)
    4. subscriber_role - Pico B's role in the subscription (also defaults to peer). 
    5. subscriber_eci - Pico B's well known ECI. Pico A must receive an ECI to contact Pico B. (This eci will be stored after the subscription has been accepted. Events should be sent to the outbound eci, not the original subscriber eci.)
    6. channel_type - the channel type for Pico A's yet to be created inbound ECI (if none is supplied, subs will be used).  
    7. attrs - the attributes for this subscription. These are used for Pico A's incoming channel's attributes. If none are supplied, the default is "status".
    Pico A creates a channel for the subscription which stores subscription information in the new channel and provides a new inbound eci for this particular subscription.
  2. Pico A sends a wrangler:pending_subscription event to Pico B, using the channel given by the subscriber_eci in step one with the following attributes:
    1. name - name of subscription.
    2. name_space - name space for subscription.
    3. my_role - Pico B's role in the subscription.
    4. subscriber_role - Pico A's role in the subscription.
    5. outbound_eci - Pico A's newly created inbound ECI.
    6. channel_type - the channel type for Pico B's yet to be created inbound ECI (the same as Pico A's).  
    7. attributes - the attributes for this subscription. These are used for Pico B's incoming channel's attributes. 
    Pico B creates a channel for the subscription which stores subscription information in the new channel and provides a new inbound eci for this particular subscription.
    Pico A also raises an internal  wrangler:pending_subscription  event with the corresponding attributes above. 
  3. Upon receiving the wrangler:pending_subscription event, Pico B, creates a pending subscription (channel mentioned above) and raises the wrangler:inbound_pending_subscription_added event. Pico A raises the wrangler:outbound_pending_subscription_added event.
    The state of each Picos subscription is static at this point. Pico A has an outgoing pending subscription and Pico B has an incoming pending subscription.
  4. If Pico B wants to approve the subscription request, it raises the wrangler:pending_subscription_approval event with an attribute named channelsubscription_name giving the name of the channel/subscription to approve.  Upon successfully creating the subscription. Pico B: 
    1. sends the wrangler:pending_subscription_approved event to Pico A on Pico B's outbound_eci value stored in its subscription.
    2. raises the wrangler:subscription_added event
  5. Upon receiving the wrangler:pending_subscription_approved event, Pico A adds an outbound_eci to the subscription on its side and raises the wrangler:subscription_added event. 
  6. If Pico B wants to reject the subscription, it raises the wrangler:inbound_subscription_rejectioncancellation event (internally) with an attribute named channelsubscription_name - the name of the channel/subscription to reject. Pico B:
    1. sends the wrangler:subscription_removal event to Pico A on Picos B outbound_eci, which then raises the wrangler:subscription_removed event to itself.
    2. raises the wrangler:subscription_removal event, which raises the wrangler:subscription_removed event.

...

Initial Subscription Flow

Image RemovedImage Added 

Subscription Approval Flow

Image RemovedImage Added

Subscription Rejection Flow


Image RemovedImage Added

Subscription Events

...

Returns a map from subscription names to subscription objects, or various forms of this map.

Parameter
Datatype
Required
<collectBy><hash path> no
<filterValue><string> no, and don't use if <collectBy> is omitted


getSubscriptions() with no arguments returns the entire map, e.g.

...