Using Event Gateways with CFMX7 - PowerPoint PPT Presentation

About This Presentation
Title:

Using Event Gateways with CFMX7

Description:

Relates a gateway type to a Listener CFC. Each instance properties set ... Listener CFC called by gateway instance. Method specified in Configuration is called ... – PowerPoint PPT presentation

Number of Views:99
Avg rating:3.0/5.0
Slides: 28
Provided by: michae1560
Category:

less

Transcript and Presenter's Notes

Title: Using Event Gateways with CFMX7


1
Using Event Gateways with CFMX7
  • By Jeff Tapper
  • Tapper.net Consulting

2
Agenda
  • Introduction to Event Gateways
  • Working with Events
  • Configuring Gateways
  • Listener Applications
  • Broadcaster Applications
  • Summary
  • Questions

3
Who Am I
  • Jeff Tapper (jeff_at_tapper.net)
  • Chief Technologist Tapper.net Consulting
  • Working with CF since 1995 (v 1.5)
  • Authored 6 books about CF and/or Flash
  • Certified MM Instructor for all CF, Flashand Flex
    courses

4
Event Gateways
  • Allow access to CF without HTTP
  • Call CF code from anything Java can react to
  • Such as
  • Instant Messages
  • Text Messages from Phones
  • Java Messaging Service
  • File System Changes
  • Etc.

5
How it works
  • Message Generator
  • Event Gateway (Java)
  • Event Gateway Services (CF)
  • Listener CFC

6
Understanding the Architecture
  • Message
  • Generator/Receiver
  • SMSC Server
  • IM Provider
  • Etc.

Listener CFC
CF Event Gateway Services
Event
Listener CFC or CFM Page
Event
ltCFMLgt
7
Gateway Types
  • Several gateway types are provided
  • SMS
  • XMPP
  • CFML
  • JMS
  • Directory Watcher
  • Etc.
  • Custom Gateway types can be built as needed

8
Gateway Types
  • Event Listeners
  • Creates an event structure and queues it in the
    Gateway

9
Gateway Instance
  • Relates a gateway type to a Listener CFC
  • Each instance properties set with Configuration
    file

10
Application Types
  • Listener Applications
  • CFC reacts to outside events
  • Broadcaster Application
  • CFML initiates a message to be sent

11
Listener Applications
  • Listener CFC called by gateway instance
  • Method specified in Configuration is called
  • CFEvent Structure passed as argument

12
Listener CFC
  • Contains methods for handling events
  • Optionally responds to sender with CFReturn
  • Method is passed CFEvent Struct
  • RFAFileWatch.cfc

13
CFEvent Structure
  • Java Object provided by gateway
  • gatewayId reference to Instance
  • data struct of incoming message
  • customized for each Event Type
  • originator who sent message
  • SMS phone
  • IM handle
  • Etc.
  • gateway Type reference to gateway which heard
    the event

14
Configuring a Gateway
  • Create config file
  • Build CFC with appropriate methods
  • Add Gateway Instance to CFAdmin
  • Start the Gateway
  • CFAdmin

15
Setting Config file
  • DirectoryWatcherGateway settings are defined in a
    Config file --cfroot\gateway\config\directory-wa
    tcher.cfg
  • Specifies
  • directory
  • recurse
  • extensions
  • Interval
  • addFunction
  • changeFunction
  • deleteFunction
  • RFAUploadDirectory-watcher.cfg

16
Config File gateway/config/directory-watcher.cfg
  • The directory you want to watch. If you are
    entering a Windows path either use forward
    slashes (C/mydir) or escape the back slashes
    (C\\mydir).
  • directory
  • Should we watch the directory and all
    subdirectories too Default is no. Set to 'yes'
    to do the recursion.
  • recurseno
  • The interval between checks, in milliseconds
    Default is 60 seconds
  • interval60000
  • The comma separated list of extensions to
    match. Default is - all files
  • extensions
  • CFC Function for file Change events Default is
    onChange, set to nothing if you don't want to see
    these events
  • changeFunctiononChange
  • CFC Function for file Add events Default is
    onAdd, set to nothing if you don't want to see
    these events
  • addFunctiononAdd
  • CFC Function for file Delete events Default is
    onDelete, set to nothing if you don't want to see
    these events

17
DirWatch.cfc
  • ltcfcomponentgt
  • ltcffunction name"onAdd" output"no"gt
    ltcfargument name"CFEvent" type"struct"
    required"yes"gt
  • ltcfset dataCFEvent.datagt
  • ltcflog file"MydirWatcher" application"No"
    text"ACTION data.type FILE
    data.filename TIME timeFormat(data.lastmod
    ified)"gt
  • lt/cffunctiongt
  • lt/cfcomponentgt

18
Customizing Directory Watcher
  • Problem Needed easier way to remotely add songs
    to Radio Free Astoria play list
  • Solution Using a modified Directory Watcher, I
    am now able to ftp songs to the server, have them
    moved to the appropriate directory and
    automatically added to play list

19
RFA Directory Watcher Flow
New mp3 ftpd to server
Directory Watcher triggers CFC
File moved
Added to playlist
Confirmation Sent
20
Broadcaster Applications
  • CFML can be used to broadcast out custom events
  • Some examples
  • Send CFML Event to start new thread
  • SMS site admin about system errors
  • Send new events to JMS messaging queue
  • Send Instant Message about application

21
Sending an Event
  • CFMX7 introduced new sendGatewayMessage()
    function
  • Takes two arguments
  • gatewayID - gateway instance configured in
    CFAdmin
  • Message struct containg message data
  • Return type varies based on gateway. Often true
    or false indicating success

22
sendGatewayMessage
  • ltcffunction name"sendConfirm" access"private"
    output"no"gt
  • ltcfargument name"songName" type"string"gt
  • ltcfset var struct structNew()gt
  • ltcfset struct.buddyId "theAstorian"gt
  • ltcfset struct.message "Song songName
    added"gt
  • ltcfset result sendGatewayMessage("RFAXMPP",str
    uct)gt
  • ltcfif result neq 'ok'gt
  • ltcflog
  • file"rfafileupload"
  • type"Information"
  • text"result"gt
  • lt/cfifgt
  • lt/cffunctiongt

23
getGatewayHelper()
  • Returns an object containing details about the
    gateway
  • Instant Message Helper ships with CFMX7
  • Example
  • myHelper getGatewayHelper("rfaxmpp")
  • status myHelper.getBuddyInfo("jefftappernyc_at_yaho
    o.myjabber.net")

24
Communicating with IM
Gateway Instance
XMPP Gateway
Jabber Network
AIM/MSN/ Yahoo Transport
AIM/MSN or Yahoo Network
Or, you can use JBuddy CF from Zion Software
25
Where to learn more?
  • CFUnited
  • Damon Cooper - CFMX 7 Mobile SMS Applications
    Made Easy
  • Tom Jordahl Advanced ColdFusion Event Gateways
  • Lots of new docs
  • JBuddyCF http//www.zionsoftware.com
  • Blogs
  • boyzoid.com
  • jeff.mxdj.com
  • weblogs.macromedia.com/mxna/

26
Summary
  • Gateways allow for CFML to be triggered by things
    other than HTTP requests
  • Gateways react to certain events and calls
    methods in a CFC
  • Gateway settings are specified in a Config File
  • Gateways can be registered using the ColdFusion
    Administrator

27
Questions
  • ?
Write a Comment
User Comments (0)
About PowerShow.com