Creating a Custom Pod for Adobe Connect with Adobe Flex
Adobe Connect is an online collaboration tool that facilitates online meetings as well as training. More information about Connect can be found here: http://www.adobe.com/products/adobeconnect.html. Connect uses individual pods to compose the application as a whole. There are pods for chat, rosters, video sharing, screen sharing, etc. The host of the meeting is able to choose what pods make up the collaboration space.
Using Adobe Flex, developers are able to create custom pods! For Connect 8, the current version, only Flash Player 9 is supported thus making Flex 3.5 the latest version of Flex that can be used. The next version of Connect, currently in development, will upgrade the Flash Player to the latest version.
For my first custom pod I decided to build something simple, yet useful, and chose to develop a RSS reader. The RSS reader would allow users to add feeds to the Room Feeds for everyone to see as well as keep track of the feeds that the user had added in My Feeds. Users would also be able to visit the sites of entries from the feed as well as share a specific entry with the room in a Shared RSS Entries list. These sections of the pod were all put together quickly with Flex using Adobe Flash Builder.
Connections:

Because the feeds needed to be saved, a database (MySQL) and a little Adobe ColdFusion were necessary to store the RSS feeds as the Connect SDK doesn’t provide a mechanism to store data between Connect sessions. Here is where I ran into my first issue. I was using Flash Remoting to call my ColdFusion components and because Connect only supports Flash Player 9 there is a security bug that causes an error to be thrown when calls are made. (This is rectified in the next version of Connect) I had already written all my ColdFusion components with Flash Remoting in mind so I ended up writing a ColdFusion layer on top of the components that supported the HTTPService in Flex which is unaffected by the security issue.
The Shared RSS Entries list was the only other piece of the puzzle that wasn’t straight forward. A users normal interaction with the RSS reader will not effect any other users interaction with the application. In the case of the Shared RSS Entries list the Adobe Connect SDK supports syncing of the application data and state between users. Every custom Adobe Connect pod must have a SyncConnector object. The SyncConnector is provided as part of the Adobe Connect SDK. In order for the Shared RSS Entries list to work, a SyncSwfEvent must be listened for and dispatched. This event will be caught by any version of the RSS reader custom pod and handled. In the case of the Shared RSS Entries list, an ArrayCollection that is bound to a list is updated with the the URL and title of the RSS entry to be shared.
There are a lot of possibilites for Connect custom pods and I am sure this will not be the last one that I develop. If you have any questions please feel free to comment on this post or send me an email. All of the code for this project and links to the documentation for the Connect SDK are below! I did have to remove my ColdFusion server information from the code, so if you want to run this yourself you will need to provide a ColdFusion server and a database to house the saved RSS URLs.
Files and Documentation:
ConnectRSSReader.fxp.zip
http://www.underprise.com/wp-content/uploads/2011/11/ConnectRSSReader.fxp_1.zip
This the Flash Builder project that has all the MXML and ColdFusion code.
Connect SDK
http://www.adobe.com/devnet/adobeconnect/sdk-eula.html
Donwload the SDK and ASDocs as well as sample applications
Adobe Connect 8 Collaboration Builder Toolkit SDK
http://help.adobe.com/en_US/connect/8.0/collaborationbuildersdk/connect_8_collaboration.pdf
Getting started with the Connect SDK
Adobe Connect Exchange
http://www.adobe.com/cfusion/exchange/index.cfm?from=1&o=desc&event=productHome&s=5&exc=14
Download other Connect custom pods and applications as well as upload your own.
Comments
Tell me what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!
