]> Dogcows Code - chaz/chatty/blobdiff - lib/Chatty/Model/Meteor.pm
add model for interacting with meteord
[chaz/chatty] / lib / Chatty / Model / Meteor.pm
diff --git a/lib/Chatty/Model/Meteor.pm b/lib/Chatty/Model/Meteor.pm
new file mode 100644 (file)
index 0000000..75d90b3
--- /dev/null
@@ -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;
This page took 0.020849 seconds and 4 git commands to generate.