NAME
Nephia::Plugin::PocketIO - Nephia plugin that provides DSL for using PocketIO
SYNOPSIS
Your app class ...
package MyApp;
use Nephia plugins => ['PocketIO'];
path '/' => sub {
+{ template => 'index.html' },
};
pocketio 'message' => sub {
my ($socket, $message) = @_;
$socket->emit('response', sub {sprintf('you said "%s"', $message)} );
};
and, your template(view/index.html) ...
<html>
<head>
<title>MyApp</title>
</head>
<body>
<button onclick="send_to_server('boo');">boo!</button>
</body>
<script type="text/javascript">
// init connection
var socket = io.connect();
// add event listener
socket.on('response', function(server_message){
alert(server_message);
});
function send_to_server(string) {
socket.emit('message', string);
}
</script>
</html>
DOWNLOAD ASSETS
If you use this plugin, it try to download "socket.io.js" into $APPROOT/root/static/socket.io.js from https://raw.github.com/vti/pocketio/master/examples/chat/public/socket.io.js
AUTO LOADING FEATURE
When calls Nephia::View::*::render(), Nephia::Plugin::PocketIO injects javascript-tag(for loading socket.io.js) into result html.
LICENSE
Copyright (C) ytnobody / satoshi azuma.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
PocketIO
Nephia
AUTHOR
ytnobody / satoshi azuma <ytnobody@gmail.com>