The giggle protocol has been developed after literally man-minutes of discussion and coding. An extension of current, yet limited internet standards we felt it necessary to create a new one, for the purposes of distributed giggling. Naturally, much like the act of a giggle itself all details and code for the giggle protocol are completely opensourced, and available from this webpage, free for all to download.
The giggle protocol is this essence of simplicity - one of it's strengths, and making cross platform development extremely straightforward, and allowing future extensions.
To initialise a giggle session, a tcp connection is opened to the giggle server on the giggle port - port 4700 by default.
The server will then wait for a client identification string followed by a
CRLF. This string should be of the format GIGGLE/1.0 CLIENTID\r\n
depending on the version of the protocol requested. The CLIENTID can be any
string of the client author's choosing. The client must then send another CRLF
to the server, with nothing else on the line. This allows for support for additional
headers for later extensions of the protocol. The server will then return an
appropriate giggle message.
The format of this message will inevitably change as the protocol is improved, but for version 1.0 it will be as follows:
serverstring\r\n
gigglestring\r\n
The server will then close the connection.
The client doesn't have to show the serverstring by default - only the gigglestring, but should include an option to show it on request
If you have any suggestions or ideas for further developments for the giggle protocol, let us know and we'll see about getting some discussions going about the future directions of the giggle protocol.
The server can, for most purposes just be started once untarred, and it will start to function as a giggle server, however you may find you want to customise the server options. Edit the giggled file with your favourite text editor, and there are a number of variables you can change.
$serverstring is the first line that is sent to the giggle client. It's up
to the person running the server what it says - it allows a little customisation
for each different server. Please keep this to 1 line.
$gigglefile is a plain text file that contains the giggle messages. 1 message
per line. It'll normally be ok to leave this as is.
$serverport sets the port that the giggle server listens to by default.
$pidfile contains the pid of the server - useful if you want to write a rc
script to control the server.
$logfile is the file the server logs it's connections to. This is of a fixed
format:
DD/MM/YY "Clientstring" 1.0 IP
where Clientstring is the name reported by the
client (if known), 1.0 is the protocol version number, and the IP is the IP
of the person connecting to the server.
$daemon controls if the server will fork itself into the background. Set this
to 0 if you want it to run as a normal process.
giggle - The original unix giggle client. Takes 2 optional arguments server
name to connect to, and port to connect to.
eg: giggle giggle.opengiggle.org 4700
If not supplied the client will default to giggle.opengiggle.org
at port 4700
giggle.cgi - A web based perl cgi script to put on your webpage. Simply change $remote_host and $remote_port to point to the giggle server of your choice, set executable, and you should have a nice web based giggle client for people to play with. Click here for a demo.
giggle.opengiggle.org - the official giggle server.retsys.geology.wisc.edu - RET-Sys giggle serverdolittle.dyndns.org - dolittle server. This isn't quite your standard giggle server ;)