Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help

       Jifty::Plugin::PubSub::Subscriptions - Manage browser event

       This class is a global cache of the outstanding subscriptions of
       requests.  When a page is rendered, it may choose to add	subscriptions
       via "update_on" or "add":

	   # Update the	current	region on an event
	   Jifty->subs->update_on( topic => "some_event" );


	   # Send this topic of	events to the browser
	   Jifty->subs->add( topic => "some_event" );

       These subscriptions are not done	in the rendering request, but must be
       stored until the	websocket connection occurs later; this	class manages
       that storage.

       The storage is currently	an in-memory store which does not purge	old
       subscriptions.  This means that if a page with subscriptions is
       requested 1000 times, but the websocket for them	is never established,
       those subscriptions will	be stored until	the server is restarted.  In
       the future, these subscriptions may be stored on	the session, and
       expired in conjunction.

       The only	expected interaction with this module is via "update_on" and

   add topic =>	TOPIC [, ...]
       Adds a subscription.  If	only the TOPIC is given, the event will	be
       passed through to the web browser to interpret.	Otherwise, the
       arguments are used similarly to Jifty::Web::Element to determine	which
       region to update, and how.

   update_on topic => TOPIC [, ...]
       As "add", but defaults to refreshing the	current	region.

       Returns the assigned CLIENT_ID of the current connection.  This is
       "undef" if the client has not been assigned any subscriptions yet.

       Called internally once per request to reset for the next	request.

   retrieve CLIENT_ID
       Returns the data	structure of subscriptions for the given CLIENT_ID,
       and removes it such that	it is not accessible to	future requests.

perl v5.32.1			  2013-Jifty::Plugin::PubSub::Subscriptions(3)


Want to link to this manual page? Use this URL:

home | help