GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  SQUATTING::MAPPER (3)

.ds Aq ’

NAME

Squatting::Mapper - map requests to session queues

CONTENTS

DESCRIPTION

The purpose of this module is to be on the lookout for requests that should get special treatment by Continuity. This is usually done by giving your controller a continuity attribute and setting it to a true value:



  C(
    Events => [ /@events/(\d+) ],

    get => sub {
      my ($self, $rand) = @_;
      my $cr = $self->cr;
      while (1) {           # <--- COMET event loops typically loop forever
        # broadcasting relevant events
        # to long-polling HTTP requests
        # as they come in...
        $cr->next;
      }
    },

    continuity => 1,        # <--- causes Squatting::Mapper to notice
  )



When it sees that continuity is true, the request will be given a session id based on: $cookie_session + $app_name + $controller_name + $path. Normally, it’s just $cookie_session, but when you get these extra pieces added to your session id, that tells Continuity that you want to have a separate coroutine for this request.

The primary intended use for handling requests in a separate coroutine is to facilitate COMET event loops. When a user visits a COMET-enabled site, there will be some JavaScript that starts a long-polling HTTP request. On the server-side, the long-polling handler will typically have an infinite loop in it, so it needs to sit off in its own coroutine so that it doesn’t affect the coroutine that is handling the normal, RESTful requests.

If the user decides to open multiple-tabs to the same COMET-enabled site, each of those tabs needs to be differentiated on the server-side as well. That’s when it becomes useful to stick something random in the path. Notice in the example that the path regex is ’/@events/(\d+)’.

It would be the job of the JavaScript to append a random string of digits to the end of an ’/@events/(\d+)’ URL before starting the long-poll request. That’ll let Squatting::Mapper give each tab its own coroutine as well.

SEE ALSO

Squatting::On::Continuity, Continuity::Mapper
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 SQUATTING::MAPPER (3) 2013-01-23

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.