|
LinuxNetMag #4
 Druckversion
|
|
Sie wollen auf ihrer Webseite den Besuchern die Möglichkeit
geben, miteinander zu chatten? Es gibt dafür mehrere Möglichkeiten, dies
per CGI und/oder SQL zu ermöglichen.
Der Systemadminstrator wird sich bedanken ...
Chatten per CGI-Script und SQL-Datenbank ist zwar möglich, allerdings
auf keinen Fall empfehlenswert (auch wenn man immer wieder Seiten findet,
die dies benutzen). Die Belastung für den Rechner ist dermaßen groß, daß
kaum noch Resourcen für andere Arbeiten übrig bleiben.
Deshalb sollte man sich lieber für eine Client/Server-Lösung entscheiden,
auch wenn dies den Nachteil hat, daß sich der Besucher in der Regel
zusätzliche Software herunterladen muß (entweder in Form eines Java-Applets
oder gar einen betriebssystemspezifischen Chatclient). Dies scheint zwar auf dem
ersten Blick als lästig, allerdings gleicht sich dieses mehr als genug dadurch aus,
daß wohl kaum ein CGI-Script annähernd den Komfort eines echten Chat-Clients
bieten kann.
Aus diesem Grund haben wir auch nur Server/Client-basierende Chat-Programme
aufgenommen.
SpanielChat ist komplett in Java geschrieben, sowohl der Server als auch der
Client, der als Applet realisiert ist.
Zwar ist die Systembelastung des Java-Servers, während er läuft, recht gering,
allerdings muß bei Java-Programmen beim starten immer die Komplette
Java Virtual Machine mitgestartet werden, welche bedeutend mehr Ressourcen
benötigt.
Die Installation von Spaniel-Chat gestaltet sich als überaus einfach. Einfach das
Programm entpacken und in ein Unterverzeichnis des Web-Servers kopieren.
Befindet sich das Verzeichnis im $PATH, dann reicht ein
>> java SpanielChatServer&
um den Server zu starten. Wählt man jetzt im Browser die vom Programm mitgeliferte
Seite "client.html", dann wird automatisch der Connect zum Server hergestellt,
und der Client öffnet sich in einem neuen Fenster. Dadurch kann man im Hintergrund
den Browser zum Surfen weiterbenutzen.
Keine IP oder Portnummer muß eingestellt werden (solange man den Standardport verwenden
möchte). Einfacher läßt sich eine Installation wohl nicht mehr gestalten.
Der Chatclient zeichnet sich durch einfache Bedienung aus. Er bietet verschiedene
Themenbezogenen Chaträume, die auch abschließbar sind, um nicht von ungebetenen
Gästen gestört zu werden.
Wenn man zum Chatten aber nicht immer den Webbrowser starten will, kann
man den SpanielChatClient auch im Appletviewer starten, welcher Bestandteil
des JDK (Java Developement Kit) ist.
>> appletviewer http://www.server.de/spanielchat/client.html&
Somit läßt sich der Client wie jedes andere Programm auch aufrufen und Nutzen.
Das Programm findet man unter http://www.searchspaniel.com/chatserver.html.
Javachat, Naken Chat, Melange und chatapplet |
Javachat ist ein reiner Chat-Server, und -wie der Name schon vermuten läßt- in Java
geschrieben. Um auf dem Server chatten zu können, benötigt man keinen speziellen
Client, sonder kann sogar mit jeglichem telnet-Programm einen Connect zum Server
herstellen.
Es genügt ein einfaches
>> telnet mein.server.de 6666
um die Verbindung herzustellen (standardmäßig benutzt Javachat den Port 6666).
Allerdings ist die Bedienung per Textkommando nicht besonders intuitiv,
deshalb gibt es auch für Javachat mittlerweile Clients mit ansprechender
Benutzeroberfläche.
Einer dieser Clients ist chatapplet, welches als applet in jedem Java-fähigen
Web-Browser läuft. (Nachdem es längere Zeit in Zusammenhang mit dem MS-IE Probleme
gab, ist die neueste Version wieder kompatibel zu allen gängigen Webbrowsern.)
Das Applet läßt sich leicht in die eigene HTML-Seite einbinden, und ist
mittlerweile auch (wie SpanielChat) zusammen mit dem Appletviewer nutzbar.
Aber damit noch nicht genug. Neben dem Java-Server gibt es mittlerweile für Linux
auch zwei Server, die komplett in C geschrieben sind, und damit wesentlich weniger
Ressourcen beanspruchen.
Der Melange Chat Server und Naken Chat sind vollständig kompatibel
zu Javachat, im Gegensatz dazu aber in C programmiert.
Der besondere Grund für die Beliebtheit und Verbreitung von Naken Chat, Javachat und
Melange ist einerseits ihre unkomplizierte Installation, aber auch die
vielen Konfigurationsmöglichkeiten, die einem ermöglichen, den Server an seine
eigenen Bedürfnisse anzupassen.
Während man den Java-Server nur dann starten sollte, wenn er auch benötigt wird,
belastet es den Rechner kaum, wenn der Naken Chat Server schon beim Booten
mitgestartet wird. Um dies zu erreichen, benötigt man im /sbin/init.d/ Verzeichnis
ein Skript, das folgendermaßen aufgebaut ist:
Skript /sbin/init.d/nakenchat (für SuSE 6.0) |
#! /bin/sh
# /sbin/init.d/nakenchat
. /etc/rc.config
# The echo return value for success (defined in /etc/rc.config).
return=$rc_done
case "$1" in
start)
echo -n "Starting service nakenchat"
## Start daemon with startproc(8). If this fails
## the echo return value is set appropriate.
startproc /path/to/nakenchat1.0x/nakenchat -f /path/to/nakenchat1.0x || return=$rc_failed
echo -e "$return"
;;
stop)
echo -n "Shutting down service nakenchat"
## Stop daemon with killproc(8) and if this fails
## set echo the echo return value.
killproc -TERM /path/to/nakenchat1.0x/nakenchat || return=$rc_failed
echo -e "$return"
;;
restart)
## If first returns OK call the second, if first or
## second command fails, set echo return value.
$0 stop && $0 start || return=$rc_failed
;;
status)
echo -n "Checking for service nakenchat: "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
checkproc /path/to/nakenchat1.0x/nakenchat && echo OK || echo No process
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
# Inform the caller not only verbosely and set an exit status.
test "$return" = "$rc_done" || exit 1
exit 0
|
Für andere Distributionen sollte ein simpleres Skript ausreichend sein:
Skript /sbin/init.d/nakenchat |
#! /bin/sh
case "$1" in
start)
echo -n "Starting service nakenchat"
/path/to/nakenchat1.0x/nakenchat -f /path/to/nakenchat1.0x
;;
stop)
echo -n "Shutting down service nakenchat"
killname /path/to/nakenchat1.0x/nakenchat
;;
restart)
$0 stop && $0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0
|
Nun benötigt man in den Verzeichnissen /sbin/init.d/rc2.d und rc3.d jeweils
die symbolischen Links S99nakenchat und K99nakenchat auf das obige Skript.
(Die Nummern geben an, an welcher Stelle das Skript ausgefürt werden soll. Dies
sollte auf jeden Fall nach dem Starten der Netzwerkunterstützung geschehen).
Mittlerweile gibt es für Javachat nicht nur einen Ersatz für den Server,
auch beim Client gibt es mittlerweile eine TCL/TK-Version.
OpenNaken heißt diese und läuft unter Linux
ebenso problemlos wie unter
Windows, da auch für diese Plattform das TCL/TK-Toolkit
erhältlich ist.
Leider ist TCL/TK unter Windows nicht annähernd so weit verbreitet, wie unter
Linux, so daß man den Besuchern der HTML-Seite neben dem Download von Open Naken
auch noch den Download des gesamten TCL/TK-Pakets zumuten muß.
Deshalb empfiehlt sich OpenNaken weniger zur Bereicherung der Homepage, dort ist
das Java-applet viel besser geeignet, aber für die Benutzer, die regelmäßig
chatten, oder wenn das gesamte LAN sich über den Nakenchat-Server unterhält,
ist OpenNaken wegen seiner guten Benutzerfreundlichkeit und höheren Geschwindigkeit
zu empfehlen.
Links
Homepage SpanielChat: http://www.searchspaniel.com/chatserver.html
Homepage Javachat, Naken Chat und chatapplet: http://home.i1.net/~naken/nakenchat/
Homepage Melange chat server: http://melange.terminal.at/
Homepage OpenNaken: http://Daemon.netfirms.com
Platz für Kommentare & Fragen:
(selbst eintragen)
|