NAME
Net::CyanChat::Server - Perl interface for running a CyanChat server.
SYNOPSIS
use Net::CyanChat::Server;
our $cho = new Net::CyanChat::Server (
host => 'localhost',
port => 1812,
debug => 1,
);
# Start the server.
$cho->connect();
# Loop.
$cho->start();
DESCRIPTION
Net::CyanChat::Server is a Perl interface for running your own CyanChat server (or, rather, to run a chat server based on the CyanChat protocol that other CC clients would recognize).
METHODS
new (ARGUMENTS)
Constructor for a new CyanChat server. Pass in the host, port, and debug. All are optional. host defaults to localhost, port defaults to 1812, debug defaults to 0. With debug on, all the server/client conversation is printed.
Returns a CyanChat server object.
version
Returns the version number.
debug (MESSAGE)
Called by the module itself for debug messages.
connect
Connect to CyanChat's server.
start
Start a loop of do_one_loop's.
do_one_loop
Perform a single loop on the server.
setWelcome (MESSAGE_1, MESSAGE_2, ETC)
Set the Welcome Messages that are displayed when a user connects to the chat. The default messages are:
Welcome to Net::CyanChat::Server v. <VERSION>
There are only a few simple rules:
1. Be respectful to other users.
2. Keep the dialog "G" rated.
3. And HAVE FUN!
Termination of use can happen without warning!
setPassword (PASS)
Define the password that is required to authenticate as a staff member. A client would use this password by sending the command...
50|password
Before signing in to the chat.
url
Returns the host/port to your CyanChat server (i.e. "localhost:1812")
reply (SOCKET, DATA)
Send data to the specified SOCKET.
getSocket (USERNAME)
Get the socket of a username signed into the chat room.
broadcast (DATA)
Broadcasts commands to all logged-in users.
sendWhoList
Sends the Who List to all users. This should be called when a user joins or exits the room.
CHANGE LOG
Version 0.02
- Messages can contain pipes in them now.
- Removed the "staff protocol" number; replaced it with "staff password"
- Changed the socket end-of-lines to CrLf instead of just Lf.
Version 0.01
- Initial release.
TO DO
- Add support for administrators ("Cyan Staff") to join the room.
- Add support for built in profanity filters and bans.
- Add IP encryption algorythm similar to Cyan's.
- Display user's ISP as their home Age, rather than their IP address.
SEE ALSO
Net::CyanChat
CyanChat Protocol Documentation: http://cho.cyan.com/chat/programmers.html
AUTHOR
Casey Kirsle <casey at cuvou.net>
COPYRIGHT AND LICENSE
Net::CyanChat - Perl interface to CyanChat.
Copyright (C) 2007 Casey Kirsle
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA