April 2024 - This site, and Kamaelia are being updated. There is significant work needed, and PRs are welcome.


Simple "Audio fortune cookie" Protocol Handler

A simple protocol handler that simply sends the contents of a randomly chosen audio file to the client.

Example Usage

>>> SimpleServer(protocol=AudioCookieProtocol, port=1500).run()
On Linux client:
> netcat <server ip> 1500 | aplay -

How does it work?

AudioCookieProtocol creates a ReadFileAdapter and configures it to read the standard output result of running the afortune.pl script, at a fixed rate of 95.2kbit/s.

afortune.pl randomly selects a file and returns its contents.

The ReadFileAdapter's "outbox" outbox is directly wired to pass through to the "outbox" outbox of AudioCookieProtocol.

This component does not terminate.

No EOF/termination indication is given once the end of the file is reached.


class AudioCookieProtocol(Axon.Component.component)

AudioCookieProtocol([debug]) -> new AudioCookieProtocol component.

A protocol that spits out raw audio data from a randomly selected audio file.

Keyword arguments:

  • debug -- Debugging output control (default=0)


  • control : NOT USED
  • inbox : NOT USED


  • outbox : Raw audio data
  • signal : producerFinished() at end of data

Methods defined here


You should be using the inbox/outbox interface, not these methods (except construction). This documentation is designed as a roadmap as to their functionalilty for maintainers and new component developers.

__init__(self[, debug])

x.__init__(...) initializes x; see x.__class__.__doc__ for signature


Initialises component. Sets up a ReadFileAdapter to read in the contents of an audio file at 95.2kbit/s and wires it to fire the contents out


Main body - sits and waits, as ReadFileAdapter is getting on with the work for us


Got a problem with the documentation? Something unclear that could be clearer? Want to help improve it? Constructive criticism is very welcome - especially if you can suggest a better rewording!

Please leave you feedback here in reply to the documentation thread in the Kamaelia blog.

-- Automatic documentation generator, 05 Jun 2009 at 03:01:38 UTC/GMT