Chat
Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 14 Jan 2010, at 01:00 PM
Package specification Summary for package chat
| Description | This package has not really been used. Probably better to look at the jabber package in contrib. |
|---|---|
| Maturity | New Submission or Maturity Unknown |
| This package depends on: | acs-kernel |
| Packages that depend on chat | None |
Bug Tracker Summary for package chat
| Open Bugs: | 2 |
|---|---|
| Latest Bug Opened: | 2006-04-05 Ajax chat English language catalog incomplete |
| Latest Bug Fixed: | 2006-05-14 chat-ajax-procs.tcl fails to be sourced on aolserver restart. |
| Top Bug Submitters: | Ryan Gallimore (3) Joel Aufrecht (1) |
| Top Bug Fixers: | Gustaf Neumann (2) |
Code Metrics Summary for package chat
| # Tcl Procs | 25 |
|---|---|
| # Tcl Lines | 565 |
| # Automated Tests | 0 |
| # Stored Procedures | PG: 0 ORA: 20 |
| # SQL Lines | PG: 0 ORA: 570 |
| # ADP pages | 15 |
| # ADP lines | 411 |
| # Include pages (chat/lib/) | 0 |
| # Documentation pages | 0 |
| # Documentation lines | 0 |
The chat package is using currenly two different chat engines:
- The Java applet and the Java chat server, or
- the Ajax based chat class from xotcl-core
If no xotcl-core is installed, one can only use the version with java applet. If xotcl-core is installed, one has to option to choose between both engines via parameter.
In essence, the Ajax based variant is the chat implementation from xowiki plus chat room management and a list of the currently connected users. Originally, the ajax based chat class (::xo::Chat) was developed for xowiki, but later moved to xotcl-core such that the chat package does not need a dependecy on xotcl-core and xowiki.
Actually, the chat support in xowiki contains a different variety of ajax based comunication strategies:
- Polling mode (the web browser queries via ajax in definable intervals the server, and checks, if there is some new information available), and
- Streaming mode (the client opens a connection to the server, the server pushes the information back to the client. xowiki chat supports two different submodes:
- streaming of JSON objects via asynchronous AJAX sockets, or
- scripted streaming, where the browser loads HTML with embedded script tags in the background from an hidden iframe
Both (2a) and (2b) require libthread support and a small patch for the aolserver, so they are currently not for beginners. However, the advantage of the streaming apporaches is that they are much faster in the look and feel and that they are better scalable on sites with a high load. 2a works only on firefox (not in current versions of IE or Safari) and has the advantage over 2b that the browser does not show the backgound activity (no spinning wheel in Firefox). 2b is more robust and works wir Safari, IE and Firefox. Both streaming modes implement, what is sometimes called COMET .
When the chat package uses the ::xo::Chat, it uses it only in currently only polling mode which has sthe lease least requirements. This has been as well tested with (Firefox, IE and Safari).
