Tuesday, December 07, 2010

Implementing video conferencing and text chat using Channel API

Last week, Google finally released the Channel API [1, 2] for Google App Engine. It has been available to developers for six months [3], but not on actual app engine for production. I had built a few video conferencing and text chat applications [4, 5] using Flash VideoIO project [6] on Google App Engine. Earlier, I had to use Ajax/polling technique to get events related to chat and user list. In the last couple of days, I modified those applications to use the asynchronous event notifications using the Channel API. More text from [6] follows:

"Random-Face [4]: This is a chatroulette-type application built using the Flash VideoIO component on Adobe Stratus service and Python-based Google App Engine. ... You can view the source code of two files, index.html that renders the front end user interface and main.py that forms the back-end service."

"Public-Chat [5]: This is a multi-party audio, video and text chat application built on top of Python-based Google App Engine and using Channel API for asynchronous instant messaging and presence. ... Developers can see the source code files: index.html is the front-end user interface, webtalk.js is the client side Javascript to do signaling, and main.py is the back-end service code."

The Channel API essentially implements an XMPP-style asynchronous communication from your server to the Javascript client. I use this to implement notifications for new messages, change in user list, and update of user video session to other participants in the system.

3 comments:

Damien said...

Conferencing
Advanced conferencing features integrated with web & video conferencing technology
http://blog.whizmeeting.com/?p=84

Web 2.0 Vs Audio Conferencing
http://blog.whizmeeting.com/?p=299

vTechMonks said...

Sorry, Theory is all good, it will be helpful if you provide actual samples. I see all theory across the blog.

Kundan Singh said...

Not sure what makes you think that it (Implementing video conferencing and text chat using Channel API) is only theory :) Please see the Flash VideoIO example applications on how I used channel API for various projects such as public-chat, random-face, video-office). http://code.google.com/p/flash-videoio/ The source code of the examples are checked in.