=pod

=head1 NAME

SockJS-perl - a SockJS Perl Plack/PSGI implementation

=head1 DESCRIPTION

=head2 Supported features

Work's still in progress.

   WebSocket (hixie-75, hixie-76/hybi-00, hybi-10, hybi-17 and various tweaks)
   XHR Polling/Streaming
   JSONP Polling
   EventSource
   HtmlFile
   IFrame XHR Polling/EvenSource/HtmlFile

   JSessionID

=head2 The Client-Side Part

SockJS client is required. You can get it from
L<http://sockjs.github.com/sockjs-client>.

   <script src="http://cdn.sockjs.org/sockjs-0.2.1.min.js"></script>

   <script>
     var sock = new SockJS("http://mydomain.com/my_prefix");

     sock.onopen = function() {
       console.log("open");
     };

     sock.onmessage = function(e) {
       console.log("message", e.data);
     };

     sock.onclose = function() {
       console.log("close");
     };
   </script>

=head2 The Server-Side Part

Here is a simple echo server.

   #!/usr/bin/env perl

   use strict;
   use warnings;

   use Plack::Builder;
   use SockJS;

   builder {
       mount '/echo' => SockJS->new(
           handler => sub {
               my ($session) = @_;

               $session->on(
                   'data' => sub {
                       my $session = shift;

                       $session->write(@_);
                   }
               );
           };
       );
   };

=head2 Running browser tests

Read the install instructions in C<t-client/README>. Start the test server and
open a browser at C<http://localhost:8081> and run the qunit tests suite.

=head2 Running protocol tests

Clone L<http://github.com/sockjs/sockjs-protocol> and follow install
instructions. Then start the test server setting C<TEST_PROTOCOL> environment
variable (this is needed for setting smaller C<response_limit>) and then run the
tests.

   # Run all the tests.
   ./venv/bin/python sockjs-protocol-dev.py

   # Run all the tests defined in XhrStreaming.
   ./venv/bin/python sockjs-protocol-dev.py XhrStreaming

   # Run only XhrStreaming.test_transport test.
   ./venv/bin/python sockjs-protocol-dev.py XhrStreaming.test_transport

=head1 AUTHOR

Viacheslav Tykhanovskyi, "[email protected]".

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2012, Viacheslav Tykhanovskyi

This program is free software, you can redistribute it and/or modify it under
the terms of the Artistic License version 2.0.