WebGuys

 

[ Home ]
[ Resumes ]
[ Home Pages ]
[ Etc. ]
[ Contact Us ]

WebGuys Instant Message System

The WebGuys have developed an instant messaging architecture affectionately known as "Whacky-Chat!". The system is designed to be client-server in nature, with a simple protocol that can be expanded as needed by client authors. The target user base is small groups who need a way to communicate short messages more efficiently than email.

 

 

Overview

The server handles these functions:

  • Client Authentication. Only users with a known userid and password may connect to a server. The wimd server maintains its own user file similar in format to passwd(3) and uses crypt(3) for the on-disk version of passwords.
  • User Management. Since it is the server that maintains the list of users, users are modified in the same way that clients communicate. The server has knowledge of "privileged" users, and only they may modify user information from a network connection. The local administrator is able to add users by modifying the server control files at any time, even without the existence of "privileged" users.
  • User Presence Status. The server is able to list all users currently connected, as well as the disposition of each known user. Users can be "ONLINE", "OFFLINE" or "AWAY".
  • User Profile Management. Users are able to modify their password, nickname, and email address at any time. The nickname is designed to the be the representation of a connected user, as shown to a client users. It accompanies the userid with all client-server interactions. The email address and disposition of a user is available whenever a client requests the profile of a user.
  • Client-Client Messages. Messages are sent between two connected users via the server. Messages can be to one user or all users, but not several users at a time. Messages are delivered to clients immediately, so clients must be prepared to receive unsolicited messages at any time.

The client handles these tasks:

  • User Interface. The client software should make an effort to provide an easy to use interface for users. It should be able to show connected users, send messages to users, change disposition, set the user's profile and show information about users.
  • Connection. The client software must be able to make connect to a server as specified by a users and remain connected until the user logs off.
  • Authentication. The client must sent the user's id and password to the server when connecting.
  • Local Preferences. The client stores all of its preferences for interface and extra features locally.
  • User Profile. Changes to a user's server profile must be sent to the server so they will show up on other clients.
  • Disposition. The disposition widget in the client interface should trigger a message to the server about the new state.
  • Messaging. Messages to other users should be delivered to the server as soon as they are complete.
  • Server Message Management. Unsolicited messages can come from the server at any time, so the client must be prepared to deal with them asynchronously and make the necessary changes to its state.
 

 

Documentation

The following documents are available about the system:
 

 

Downloads

The folowing software can be downloaded:

Servers:

  • C++ for UNIX systems: (gzip) (bzip2) (RPM) (debian)
    This source requires a UNIX system with POSIX threads, crypt(3), C++, and STL. It has been tested on Redhat Linux 6.0 on i386 and IRIX 6.3.

Clients:

  • Tk/Tcl client: (gzip) (bzip2) (zip) (RPM) (debian)
    This requires Tcl/Tk, which you can get from Scriptics. NOTE: there is an incompatibility with version Tcl/Tk 8.1.1 on Windows, so please install 8.1 if you use Windows.

CVS:

The latest source code to all the parts of this project are available via anonymous CVS. The whacky-system module contains the current development versions of the above downloads, as well as works in progress.

Connect to 24.4.239.71 as cvs-guest with the password of cvs-guest.

For example:
$ cvs -d :pserver:cvs-guest@24.4.239.71:/usr/src/cvs login
$ cvs -d :pserver:cvs-guest@24.4.239.71:/usr/src/cvs co whacky-system
There is a hierarchy inside the whacky-system module, and you can check out only the sub-project that you are interested in if you know its name. It is recommended that you check out the complete project first, and then study the components to get a feel for the architecture.

These files are also available from the FTP server.

 

 

Mailing Lists

If you would like to join one of the mailing lists, send a message containing one of the following lines in the body to imailsrv@webguys.com:
Subscribe wimd-friends <FirstName LastName>
Subscribe wimd-devel <FirstName LastName>
To unsubscribe send a message containing:
Unsubscribe wimd-friends <FirstName LastName>
Unsubscribe wimd-devel <FirstName LastName>
The wimd-friends list is for users and administrators of the system, while the wimd-devel list is for the use of developers working on the source code of the system.
 

 

Public Servers

Here are links to other sites with information about The WebGuys Instant Message System in use.
 

 

Future

Some of the things we're working on:
  • Better documentation for the current version, including more maintainence comments in the source code.
  • Server 2.0 - much more sophisticated, with new codebase and protocol.
  • Native clients - Clients using native windowing system and OS tools for the following platforms: BeOS, Windows, Gnome, KDE, Xlib, others.
  • Integrating with other messaging products.
  • Compliance with the IETF's Instant Messaging and Presence Protocol.
 

 

Contact

For more information, please contact Kevin Birch.



 
 

This page has been designed to be both Lynx and Newton friendly. Please view with the browser of your choosing!

Any Browser Now!


© 1994-1999 The WebGuys