The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Catalyst::Controller::MessageDriven

SYNOPSIS

  package MyApp::Controller::Queue;
  use Moose;
  BEGIN { extends 'Catalyst::Controller::MessageDriven' }

  sub some_action : Local {
      my ($self, $c, $message) = @_;

      # Handle message

      # Reply with a minimal response message
      my $response = { type => 'testaction_response' };
      $c->stash->{response} = $response;
  }

DESCRIPTION

A Catalyst controller base class for use with Catalyst::Engine::Stomp, which handles YAML-serialized messages. A top-level "type" key in the YAML determines the action dispatched to.

METHODS

begin

Deserializes the request into $c->stash->{request}

default

Dispatches to method named by the key $c->stash->{request}->{type}

end

Serializes the response from $c->stash->{response}

CONFIGURATION

In the configuration file add the following to set the value for a parameter

  <MessageDriven>
    type_key foo
  </MessageDriven>

type_key

The hash key the module will try to pull out the received message to call within the controller. This defaults to 'type'.

serializer

The serializer used to serialiser/deserialise. See Data::Serializer to see what is available. Defaults to YAML. JSON is anotther that is available.

AUTHOR AND CONTRIBUTORS

See information in Catalyst::Engine::Stomp

LICENCE AND COPYRIGHT

Copyright (C) 2009 Venda Ltd

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.