=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.