X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fchatty;a=blobdiff_plain;f=lib%2FChatty%2FModel%2FMeteor.pm;fp=lib%2FChatty%2FModel%2FMeteor.pm;h=75d90b38e01f51a86bfda322dc3640dfff8e6185;hp=0000000000000000000000000000000000000000;hb=429699124ffcdd7a426b8db4223602639b9163ee;hpb=100d54b49cab3783276b3a470fffa5e509929daf diff --git a/lib/Chatty/Model/Meteor.pm b/lib/Chatty/Model/Meteor.pm new file mode 100644 index 0000000..75d90b3 --- /dev/null +++ b/lib/Chatty/Model/Meteor.pm @@ -0,0 +1,57 @@ +package Chatty::Model::Meteor; +use Moose; +use namespace::autoclean; + +use IO::Socket; + +extends 'Catalyst::Model'; + +# TODO: does not reconnect to cometd if connection is broken +has 'cnx' => ( + is => 'ro', + lazy => 1, + required => 1, + default => sub { + IO::Socket::INET->new( + PeerAddr => 'localhost', + PeerPort => 4671, + Proto => 'tcp' + ); + }, +); + +=head1 NAME + +Chatty::Model::Meteor - Catalyst Model + +=head1 DESCRIPTION + +Handles interaction with the meteor comet server. + +=head1 METHODS + +=head2 addMessage + +Post a message to the server. + +=cut + +sub addMessage { + my ($self, $channel, $message) = @_; + my $cnx = $self->cnx; + print $cnx "ADDMESSAGE $channel $message\n"; +} + +=head1 AUTHOR + +Charles McGarvey + +=head1 LICENSE + +This library is free software. You can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +__PACKAGE__->meta->make_immutable; +1;