Hallo!
Ich bin auf der Suche nach einem ingame chat für mein Game, der relativ wenig Platz einnimmt, damit man ihn immer geöffnet über der aktuellen Seite haben kann, ohne dass er stört.
Daher wäre es also praktisch, wenn der chat nur aus einem Eingabefeld, einem Nachrichtenfeld und oben einer tab-Leiste für Räume bestehen würde.
Eine user-Liste auf der Seite brauche ich nicht.
Bevor ich mir selbst einen solchen chat bastle, versuche ich lieber mal, ein bereits fertiges script zu finden, das würde mir einiges an Arbeit ersparen (daher der threat)
Vielleicht kennt ja jemand etwas Passendes
Suche - einfaches Chat script
gepostet vor 16 Jahre, 6 Monate von Liutasil
gepostet vor 16 Jahre, 6 Monate von Kallisti
Denk dran, dass jede Form von Chat extrem ressourcenhungrig ist und HTTP alles andere als das optimale Protokol fuer dergleichen ist, zumindest bei Standard Webservern.
Denke die eleganteste Loesung ist ein eigener Jabber Server mit HTTP Bindungs und eine Javascript basierter Webclient, der ins Spiel embedded wird.
Gibt auch komplette "Dating" Webseiten, deren zu grunde liegende Architektur auf Jabber aufbaut.
Falls dir das oversized / zu aufwendig ist, nimm ruhig ein php script o.ae., aber wunder dich dann nicht eines Tages ueber die Performance. Haengt aber natuerlich auch davon ab, wie interaktiv der Chat werden soll und wie du die Raumgroessen planst.
Wenn deine Anforderungen aber wirklich so gering sind, wie du es beschreibst, solltest du es ja innerhalb von 20-30 Minuten selbst programmieren koennen. Selbst bei fertigen Loesungen brauchst du laenger, um sie ordentlich zu integrieren.
Denke die eleganteste Loesung ist ein eigener Jabber Server mit HTTP Bindungs und eine Javascript basierter Webclient, der ins Spiel embedded wird.
Gibt auch komplette "Dating" Webseiten, deren zu grunde liegende Architektur auf Jabber aufbaut.
Falls dir das oversized / zu aufwendig ist, nimm ruhig ein php script o.ae., aber wunder dich dann nicht eines Tages ueber die Performance. Haengt aber natuerlich auch davon ab, wie interaktiv der Chat werden soll und wie du die Raumgroessen planst.
Wenn deine Anforderungen aber wirklich so gering sind, wie du es beschreibst, solltest du es ja innerhalb von 20-30 Minuten selbst programmieren koennen. Selbst bei fertigen Loesungen brauchst du laenger, um sie ordentlich zu integrieren.
gepostet vor 16 Jahre, 6 Monate von Liutasil
Jabber wäre kompletes Neuland für mich und ist zumindest für die Anfangszeit von den Userzahlen her wahrscheinlich unnötig
Aber wie wäre ein einfacher IRC-Server + Client von der Geschwindigkeit her?
Besser als ganz normales HTTP über einen Socket-Server?
Aber wie wäre ein einfacher IRC-Server + Client von der Geschwindigkeit her?
Besser als ganz normales HTTP über einen Socket-Server?
gepostet vor 16 Jahre, 6 Monate von Kallisti
Irc ist fuer den Zweck natuerlich definitiv besser als HTTP, nur ist das Problem halt die Anbindung. In jedem echten Chat hast du persistente Verbindungen und kein Request -> Response schema wie in HTTP... Deshalb hast du in Chats ja auch Push Verhalten und nicht dauerhaftes Polling, was eben das Haupt Performance Problem darstellt.
Und um das zu fixen landest wieder bei Zeug wie Java Applets und die User freuen sich ueber 3 Minuten Ladezeit.
Wuesste keine elegante Loesung Chats zu realisieren... ist entweder mega ressourcenhungrig oder benoetigt groessere Eingriffe in die gesamte Serverarchitektur.
Und um das zu fixen landest wieder bei Zeug wie Java Applets und die User freuen sich ueber 3 Minuten Ladezeit.
Wuesste keine elegante Loesung Chats zu realisieren... ist entweder mega ressourcenhungrig oder benoetigt groessere Eingriffe in die gesamte Serverarchitektur.
gepostet vor 16 Jahre, 6 Monate von Kaiser Nero
Ich hab einen IRC Server aufgesetzt, die Services gleich dazu und dann halt PJIRC als Web-Client (läuft mit Java), damit die User nicht zwingend ein Programm installieren müssen. Falls du keine Lust hast einen eigenen IRC-Server + Services aufzusetzen kannst du auch einfach ein bestehendes Netzwerk (zum Beispiel GameSurge (gamesurge.net | irc.eu.gamesurge.net)) benutzen und den Java-Client darauf richten.
Falls du einen IRC-Server selbst aufsetzt empfehle ich dir den ircu (coder-com.undernet.org/) mit den srvx als Services (www.srvx.net/). Solang du nicht nur reinen Webspace hast kannst du die problemlos aufsetzen.
Falls du noch mehr Infos darüber brauchst, meld dich einfach bei mir.
mfg
Kaiser Nero
Falls du einen IRC-Server selbst aufsetzt empfehle ich dir den ircu (coder-com.undernet.org/) mit den srvx als Services (www.srvx.net/). Solang du nicht nur reinen Webspace hast kannst du die problemlos aufsetzen.
Falls du noch mehr Infos darüber brauchst, meld dich einfach bei mir.
mfg
Kaiser Nero
gepostet vor 16 Jahre, 6 Monate von Liutasil
ich denke mal wenn ich mich für irc entscheide werde ich auch einen eigenen Server aufsetzten.
Dürfte bei meinem VServer kein Problem sein
Ich bin gerade über einen interessanten irc clienten gestolpert, der über AJAX funktioniert, also kein nerviges Applet mit ewiger Ladezeit:
www.mibbit.com/
nur dumm, dass man das Script nicht einfach download kann, sondern es sich nur über einen i-frame einbinden lässt
aber immerhin scheint irc auch über AJAX möglich zu sein
Dürfte bei meinem VServer kein Problem sein
Ich bin gerade über einen interessanten irc clienten gestolpert, der über AJAX funktioniert, also kein nerviges Applet mit ewiger Ladezeit:
www.mibbit.com/
nur dumm, dass man das Script nicht einfach download kann, sondern es sich nur über einen i-frame einbinden lässt
aber immerhin scheint irc auch über AJAX möglich zu sein
gepostet vor 16 Jahre, 6 Monate von Kaiser Nero
Die Einbindung des Web-Clients über nen I-Frame birgt auch Sicherheitsrisikos, da sich die User sicherlich auch bei den IRC-Services einloggen wollen um ihre Channelrechte zu bekommen. Wenn die Passworter dann noch über Mibbit zu deinen Services gesendet werden kann Mibbit alle Passwörter mitloggen.
(Nur so als Anmerkung.)
Weiterhin wird es ein Problem die User auseinanderzuhalten, falls einige mist bauen. Wenn alle User die gleiche Hostmask haben kann man schlecht einen einzelnen vom Channel Bannen oder vom ganzen Netzwerk G-Linen.
Ein V-Server reicht für einen IRC-Server vollkommen aus. Ich selbst habe auch "nur" einen V-Server und das ganze läuft problemlos.
mfg
(Nur so als Anmerkung.)
Weiterhin wird es ein Problem die User auseinanderzuhalten, falls einige mist bauen. Wenn alle User die gleiche Hostmask haben kann man schlecht einen einzelnen vom Channel Bannen oder vom ganzen Netzwerk G-Linen.
Ein V-Server reicht für einen IRC-Server vollkommen aus. Ich selbst habe auch "nur" einen V-Server und das ganze läuft problemlos.
mfg
gepostet vor 16 Jahre, 6 Monate von Bringer
Auch "ganz nett" finde ich den [URL]https://blueimp.net/ajax/[/URL] chat. Lässt sich ziehmlich flott ueberall einbinden und modifizieren.
Wenn man eh vorhat foren und spiellogins zusammenzuwürfeln ist das wahrscheinlich sogar die komfortabelste software.
Wenn man eh vorhat foren und spiellogins zusammenzuwürfeln ist das wahrscheinlich sogar die komfortabelste software.
gepostet vor 16 Jahre, 6 Monate von Nuky
Wenn du den client in nem iframe hast, kannst du immer noch den iframe verstecken und die benötigten daten über javascript rausholen..
gepostet vor 16 Jahre, 6 Monate von Drezil
für nen reinen http-chat würd ich einfach nen ajax-push auf ein serverscript machen, dass nach 30 sec die verbindung dropped und dann auf den nächsten request für einen weiteren push wartet.
konkret:
JS-Teil (prototype-like, damit einfach zu verstehen):
Ajax.request('script.php?from='+timecode, {
onDataAvaiable: function (data) { appendChat(data) },
onFinish: push(Date.now());
});
}
PHP-Teil:
while ($start - $from < 30) {
$qry = query('select eintrag, user, ... from heap_chat where eintrag > '.$from);
while ($row = $qry->fetch()) {
echo json_encode($row);
}
$from = now();
sleep(1);
}
so in der art.. Prinzip sollte klar sein. Besser wär natürlich noch nen echter daemon in c++ o.ä., der http spricht, die einträge direkt im ram hält und die connections in einem thread pooled etc., aber das geht bei den meisten eh zu weit.
code ist nicht getestet, nur pseudocode und grad aus dem ärmel geschütteltt. Aus leserlichkeitsgründen auch keine sicherheitschecks etc.
hab da mal ne seite gesehen, die so einen chat als source angeboten hat .... aber ich find die nicht wieder..
konkret:
JS-Teil (prototype-like, damit einfach zu verstehen):
push(timecode) {
Ajax.request('script.php?from='+timecode, {
onDataAvaiable: function (data) { appendChat(data) },
onFinish: push(Date.now());
});
}
PHP-Teil:
$start = now();
while ($start - $from < 30) {
$qry = query('select eintrag, user, ... from heap_chat where eintrag > '.$from);
while ($row = $qry->fetch()) {
echo json_encode($row);
}
$from = now();
sleep(1);
}
so in der art.. Prinzip sollte klar sein. Besser wär natürlich noch nen echter daemon in c++ o.ä., der http spricht, die einträge direkt im ram hält und die connections in einem thread pooled etc., aber das geht bei den meisten eh zu weit.
code ist nicht getestet, nur pseudocode und grad aus dem ärmel geschütteltt. Aus leserlichkeitsgründen auch keine sicherheitschecks etc.
hab da mal ne seite gesehen, die so einen chat als source angeboten hat .... aber ich find die nicht wieder..
gepostet vor 16 Jahre, 6 Monate von Nuky
ist ein guter ansatz, aber sobald du apache verwendest: uh-oh.
da sperrt dir dann jeder chatter einen ganzen prozess, und der kostet bei apache schnell mal 3-5 mb - also dort eher viele kleine verbindungen aufbauen (alle 2-5 sec reicht normal..)
da sperrt dir dann jeder chatter einen ganzen prozess, und der kostet bei apache schnell mal 3-5 mb - also dort eher viele kleine verbindungen aufbauen (alle 2-5 sec reicht normal..)
gepostet vor 16 Jahre, 6 Monate von Fornax
Original von Nuky
ist ein guter ansatz, aber sobald du apache verwendest: uh-oh.
da sperrt dir dann jeder chatter einen ganzen prozess, und der kostet bei apache schnell mal 3-5 mb - also dort eher viele kleine verbindungen aufbauen (alle 2-5 sec reicht normal..)
Wurde das ab Apache 2 nicht geändert?
Hab grad mal gesucht und das gefunden: httpd.apache.org/docs/2.0/mod/worker.html
gepostet vor 16 Jahre, 5 Monate von Klaus
Ja es gibt einen threaded worker der dann nicht so viele Ressourcen frisst. Viele scheuen aber den Aufwand dann PHP über fastCGI zu installieren (oder auf die thread sichere Variante von PHP auszuweichen).
Aaaaber man könnte den Chat ja auch abkapseln. Sprich: einen ganz leichten Webserver wie z.B. Lighty parallel auf einem anderen Port laufen lassen. Was man als Chatlogik dahinter baut ist dann egal.
Aaaaber man könnte den Chat ja auch abkapseln. Sprich: einen ganz leichten Webserver wie z.B. Lighty parallel auf einem anderen Port laufen lassen. Was man als Chatlogik dahinter baut ist dann egal.
gepostet vor 16 Jahre, 5 Monate von Nuky
Ich würde hier auch Klaus' Ansatz verwenden - zumindest ein V-Server ist ja schnell eingerichtet..