Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl
- use Mojolicious::Lite;
- use EV;
- use AnyEvent::IRC::Client;
- # Join #mojo on irc.perl.org
- my $irc = AnyEvent::IRC::Client->new;
- $irc->connect('irc.perl.org', 6667, {nick => "mojobot$$"});
- $irc->send_srv(JOIN => '#mojo');
- get '/' => 'index';
- get '/events' => sub {
- my $self = shift;
- # Emit "msg" event for every new IRC message
- $self->res->headers->content_type('text/event-stream');
- my $g = $irc->reg_cb(publicmsg => sub {
- my $message = pop->{params}->[1];
- $self->write("event:msg\ndata: $message\n\n");
- });
- $self->on_finish(sub { undef $g });
- };
- app->start;
- __DATA__
- @@ index.html.ep
- <!doctype html><html>
- <head><title>The Mojolicious IRC channel</title></head>
- <body>
- <script>
- var events = new EventSource('<%= url_for 'events' %>');
- // Subscribe to "msg" event
- events.addEventListener('msg', function(event) {
- document.body.innerHTML += event.data + '<br/>';
- }, false);
- </script>
- </body>
- </html>
Add Comment
Please, Sign In to add comment