I became interested in making a chat room program in early 2002. I was getting pretty good with VBScript in an ASP environment, and I'd written a few simple Visual Basic programs. I wanted something to really challenge me. Unfortunately, I knew very little about VB and the controls available to me, and since most of my knowledge revolved around SQL server interaction, the first iteration of this idea was pathetic. It featured a list box to show the users currently in the room, a text box to type your messages, and a bigger text box to show everyone else's messages. It was called "Chatroom" (what an imaginitive name), and the program basically pinged a SQL Server table every few seconds looking for new messages. It only supported one room, the SQL Server information was hardcoded, and there was no customization for the user. The first thing to do was replace the chat messages text box with a rich text box, which allowed me to introduce customization options for the user like font, size, and bold/italic text. It still operated on the SQL Server tables, and this was something I desperately wished to change. I started learning all about TCP/IP communications with the Microsoft Winsock control. I can't say I'm an expert in this area yet, but I know enough to make chat room programs work properly. After rigorous testing I released "ChatroomTCP" which featured even more options for customization of the display as well as getting away from SQL Server. Now someone would select to be the server, and other instances of ChatroomTCP would connect to it as the client. It still wasn't done yet because ultimately it supported only one room, and fairly weakly at that. I decided to scrap everything and start from scratch. The rich text box had to go because of its limitations and intense difficulty of use, and overall the program concept was inflexible and not scalable. I redesigned everything to be a more stable, secure environment. Adding new features is easy, and so far there have been no issues between users who are using different versions of the program. Chatbox has become a multi-user chatting environment that incorporates my favorite features from various instant messenger services as well as the Internet Relay Chat client mIRC. In theory, it can support thousands of users operating in thousands of rooms, private messages, and most recently simple multiplayer games. All communications have a basic encryption thrown on them to prevent spying, and the user has countless options to customize Chatbox to their liking. The future of Chatbox: One major feature yet to be introduced is a redundant server capability. Since this is still basically a server-client architecture, the loss of the server means the entire chat network is shut down until another server is started. With redundant capabilities, a new server would be automatically selected and the client connections are forwarded there. All chat rooms, private chats, and games would be retained with only a minimal delay. |