einen chat selbst machen (HILFE)
Manuela
- programmiertechnik
Hallo Ihr lieben,
Ich möchte ein schönes Chat portal machen, und habe da schon ein Vorbild... schaut euch mal das www.heavencity.de an denn ich will selbst so einen machen programmieren wer kann mir da weiter helfen?
Ich kann mir es nicht leisten so ein Chat machen zu lassen heavencity.de kostet 15 T Euro und noch mal was monatl. ich habe ein server und so.
Sagt bitte nicht ich soll was anderes suchen helft mir doch bitte.. was für ein programm brauche ich... liebe n Gruß Manu
meine e mail addy steht oben
Hoi,
Ich möchte ein schönes Chat portal machen, und habe da schon ein
Vorbild... schaut euch mal das www.heavencity.de an denn ich will
selbst so einen machen programmieren wer kann mir da weiter helfen?
[...]
Sagt bitte nicht ich soll was anderes suchen helft mir doch bitte..
was für ein programm brauche ich... liebe n Gruß Manu
Es gibt zwei Moeglichkeiten: entweder, du heuerst jemanden an, der
das fuer dich tut, oder du wirst dich intensivst mit verschiedenen
Protokollen und Algorithmen auseinandersetzen muessen. Nur mit HTML
ist da nichts zu machen. Du koenntest z. B. Perl oder PHP oder C
nehmen, diese Sprachen sind fuer sowas alle sehr gut geeignet.
meine e mail addy steht oben
Schoen. Meine auch. .oO(hae?)
Gruesse,
CK
Hi!
Du koenntest z. B. Perl oder PHP oder C
nehmen, diese Sprachen sind fuer sowas alle sehr gut geeignet.
PHP ist gut für einen Chat geeignet??? Oder meinst Du nur für das Portal und Login...? Da PHP wie Du sicher weißt nur serverseitig ausgeführt wird, kann man ja schlecht den Browser aktualisieren, wenn eine Antwort eingeht, oder? Ist Java oder entsprechende Software(mirc... also ohne Browser) die einzige Möglichkeit für einen Chat?
Grüße
Andreas
Hoi,
PHP ist gut für einen Chat geeignet???
Na klar. Wie jede andere Programmiersprache auch.
Oder meinst Du nur für das Portal und Login...? Da PHP wie Du
sicher weißt nur serverseitig ausgeführt wird, kann man ja schlecht
den Browser aktualisieren, wenn eine Antwort eingeht, oder?
Ist ja vielleicht auch gar nicht noetig. Gute Chats laufen ja im
Normalfall auch entweder in einem Applet oder mit einer separaten
Software. Aber das Server-Client-Prinzip laesst sich mit PHP genau so
gut oder schlecht umsetzen wie mit Perl oder C.
Ist Java oder entsprechende Software(mirc... also ohne Browser) die
einzige Möglichkeit für einen Chat?
Fuer einen vernuenftigen: ja.
Gruesse,
CK
Hi!
Ist ja vielleicht auch gar nicht noetig. Gute Chats laufen ja im
Normalfall auch entweder in einem Applet oder mit einer separaten
Software. Aber das Server-Client-Prinzip laesst sich mit PHP genau so
gut oder schlecht umsetzen wie mit Perl oder C.
Aber ich dachte immer genau das sei das Wesen des Chat! En Forum oder Board werden die Antworten irgendwie mehr oder weniger struktueriert gegliedert, irgendwie dann als html zurückgegeben, in einem Chat werden die Nachichten der zeit nach unterienander geschrieben, und die Anzeige aller Clients wird bei jeder neuen Nachricht aktualisiert. Klar dass das mit PHP ud PERL nicht geht, C kenn ich leider nicht. Aber was ist das besondere an Java (was doch meines Wissens gar nicht sooo anders ist als C, irgendwie doch daraus hervorgegangen?!), dass diese automatische Aktualisierung möglich wird? Und die anderen Clients, sind die nicht meist auch in C oder Java geschrieben?
Wie funktioniert das dann? Ich stelle mir vor das der Server die ganzen eingeloggten Client kennt, und diese alle an einem besteimten Port "lauschen", und wenn eine neue Nachricht kommt der Server an alle Client IPs auf entsprechenden Port irgendein Signal sendet, so dass diese sich aktualisieren. Ist das so wenigstens die richtige Richtung, oder liege ich total falsch?
Warum kann PERL sowas nicht?
Grüße
Andreas
Hoi,
Ist ja vielleicht auch gar nicht noetig. Gute Chats laufen ja im
Normalfall auch entweder in einem Applet oder mit einer
separaten Software. Aber das Server-Client-Prinzip laesst sich
mit PHP genau so gut oder schlecht umsetzen wie mit Perl oder C.
Aber ich dachte immer genau das sei das Wesen des Chat! En Forum
oder Board werden die Antworten irgendwie mehr oder weniger
struktueriert gegliedert, irgendwie dann als html zurückgegeben,
in einem Chat werden die Nachichten der zeit nach unterienander
geschrieben,
Ja.
und die Anzeige aller Clients wird bei jeder neuen Nachricht
aktualisiert.
So aehnlich.
Klar dass das mit PHP ud PERL nicht geht,
Klar geht das auch mit PHP oder Perl.
C kenn ich leider nicht. Aber was ist das besondere an Java (was
doch meines Wissens gar nicht sooo anders ist als C, irgendwie
doch daraus hervorgegangen?!), dass diese automatische
Aktualisierung möglich wird?
Sie ist in jeder anderen Sprache, die grundlegende Netzwerk-APIs
unterstuetzt, auch moeglich.
Das besondere an einem Applet ist, dass man es im Browser ausfuehren
kann. Das geht sonst nur mit Plugins (wobei Plugins auch in Java
geschrieben werden koennen).
Und die anderen Clients, sind die nicht meist auch in C oder Java
geschrieben?
Das kommt darauf an. Man kann sie in jeder beliebigen Sprache schreiben, die Netzwerk-APIs besitzt.
Wie funktioniert das dann? Ich stelle mir vor das der Server die
ganzen eingeloggten Client kennt, und diese alle an einem
besteimten Port "lauschen",
Ja. Diesen Status nennt man auch 'IOWAIT' oder 'POLL'.
und wenn eine neue Nachricht kommt der Server an alle Client IPs
auf entsprechenden Port irgendein Signal sendet,
Der Server schickt die Nachricht. Basta.
so dass diese sich aktualisieren. Ist das so wenigstens die
richtige Richtung, oder liege ich total falsch?
Nein, das ist richtig.
Warum kann PERL sowas nicht?
Natuerlich kann auch Perl das.
Gruesse,
CK
Hi!
Klar geht das auch mit PHP oder Perl.
Aber das Problem ist ja dann wohl das das schlecht Clientseitig ausgeführt werden kann, das müßte ja für eine Komunikation notwenig sein, oder?
Das besondere an einem Applet ist, dass man es im Browser ausfuehren
kann. Das geht sonst nur mit Plugins (wobei Plugins auch in Java
geschrieben werden koennen).
Ah! Aber sowas ist wahrscheinlich nicht ganz so einfah oder? Vor allem ohne Javakenntnisse:)
Mit Flash funktioniert das ja dann wohl so ähnlich, oder? Nochmal kurz zur Theorie, was ich in PHP mal geschafft habe, ist eine Socket-Verbindung von einem zu einem anderen Server herzustellen! Und jetzt müßte man sowas in Java schreiben und den Client(Browser) downloaden und ausführen lassen, dann eine Verbindung zum Server herstellen (auch zum Http-Server, über die gleiche Http-Verbindung???)
Der Server schickt die Nachricht. Basta.
Welcher Server denn, einfach an die Client IP auf den (standard-)Port den auch die http-Verbinung verwendet, also mit dem http-Protokoll, nicht über eine eigene Verbindung und einem anderen Protokoll?
Vielen Dank schonmal für Eure Hilfe, ich frage nur so viel, da sich mir für ein anderes Problem aufeinmal eine völlig neue Möglichkeit aufzutun scheint! Damals ging es nur darum eine Möglichkeit zu schaffen, dass man über den Browser augenblicklich benachrichtigt wird, wenn eine neue Nachricht eingeht(ging um ein Feature für eine Auktions-Maschine), und wie es scheint könnte ich das mit Java oder Flash machen, daran hatte damals keiner gedacht! Hatte sogar Versuche mit ICQ gestartet:)
Viele Grüße
Andreas
holla again
Mit Flash funktioniert das ja dann wohl so ähnlich, oder? Nochmal kurz zur Theorie, was ich in PHP mal geschafft habe, ist eine Socket-Verbindung von einem zu einem anderen Server herzustellen! Und jetzt müßte man sowas in Java schreiben und den Client(Browser) downloaden und ausführen lassen, dann eine Verbindung zum Server herstellen (auch zum Http-Server, über die gleiche Http-Verbindung???)
Bombastico ! Wenn du das schon hinbekommen hast kannst du das auch locker die Kommunikation mit nem FlashClient hinbekommen. Du must halt nur deine Daten XML Konfo. verpacken damit du sie in Flash sauber verarbeiten kannst.
Der Server schickt die Nachricht. Basta.
Welcher Server denn, einfach an die Client IP auf den (standard-)Port den auch die http-Verbinung verwendet, also mit dem http-Protokoll, nicht über eine eigene Verbindung und einem anderen Protokoll?
Jo!!
cu
holla again
Auch so!
Bombastico ! Wenn du das schon hinbekommen hast kannst du das auch locker die Kommunikation mit nem FlashClient hinbekommen. Du must halt nur deine Daten XML Konfo. verpacken damit du sie in Flash sauber verarbeiten kannst.
Naja, XML ist nicht gerade was wovon ich viel verstehe, wollte ich mir aber immer schonmal nächer angucken :)
Nur mal so fürs Verständnis, Ich könnte im Internet auf dem Server mit z.B. PHP als Backend die Informationen an die Clients schicken(per Socket-Verbindung an die entsprechende IP???)
Naja, dann müßte ich michg mal richtig mit ActionScript auseinander setzen, hatte das irgendwann nur mal grob probiert, ist ja nicht sooo wild :)
Aber was für ein Protokoll soll ich denn da verwenden? Einfach über die Socket-verbindung eine XML-Datei über die TCP/IP Verbindung jagen? Naja, wie das genau gehen soll verstehe ich zwar nicht, aber das muß ich dann wohl mal nachlesen! Kennst Du evtl gute Links, Tuts... zu diesem Thema? Ich finde es sehr interessant!
Jedenfalls vielen Dank für die Infos!
Grüße
Andreas
ich bins wieder :-)
Naja, XML ist nicht gerade was wovon ich viel verstehe, wollte ich mir aber immer schonmal nächer angucken :)
Nur mal so fürs Verständnis, Ich könnte im Internet auf dem Server mit z.B. PHP als Backend die Informationen an die Clients schicken(per Socket-Verbindung an die entsprechende IP???)
Jau !
Naja, dann müßte ich michg mal richtig mit ActionScript auseinander setzen, hatte das irgendwann nur mal grob probiert, ist ja nicht sooo wild :)
Tamtam ... hab ich mir auch noch nicht richtig angesehen nur in der Doku die Unterschiede zu JavaScript und wenn das so stimmt ist das gar nicht so heftig.
Aber was für ein Protokoll soll ich denn da verwenden? Einfach über die Socket-verbindung eine XML-Datei über die TCP/IP Verbindung jagen? Naja, wie das genau gehen soll verstehe ich zwar nicht, aber das muß ich dann wohl mal nachlesen! Kennst Du evtl gute Links, Tuts... zu diesem Thema? Ich finde es sehr interessant!
Jau ! Schickst du einfach z.B.
<xml>
<header>
<command>machwasdamit</command>
</header>
<msg>Hallo Leute wie gehts!</msg>
</xml>
irgendwie so soll das aussehen. (weiss aber selber nicht so genau). Auf der Clientsite fummelst du das dann auseinander und zeigst die msg in ner Textarea oder so.
Irgendwo bei Macromedia.com gibt es ein paar Tutos dazu musst mal schaun.
Ansonsten kann ich dir da noch die Site von Juan Carlos empfehlen. http://www.develooping.com Er hat mit PHP3 und Flash4 so etwas zusammengebaut. Er hat auch den kompletten Quellcode zum Download im Angebot. Dann lässt sich das alles ein bischen einfacher nachvollziehen. In den Macromedia Tutos müssten allerdings auch einige Beispiele zu finden sein.
cu
Hi!
Tamtam ... hab ich mir auch noch nicht richtig angesehen nur in der Doku die Unterschiede zu JavaScript und wenn das so stimmt ist das gar nicht so heftig.
Hoffen wirs :)
Jau ! Schickst du einfach z.B.
<xml>
<header>
<command>machwasdamit</command>
</header>
<msg>Hallo Leute wie gehts!</msg>
</xml>
hm.
Irgendwo bei Macromedia.com gibt es ein paar Tutos dazu musst mal schaun.
Werd ich machen!
Ansonsten kann ich dir da noch die Site von Juan Carlos empfehlen. http://www.develooping.com Er hat mit PHP3 und Flash4 so etwas zusammengebaut. Er hat auch den kompletten Quellcode zum Download im Angebot.
*ggg* Lustig, war das spanisch? Hab es trotdem gefunden! Und das steht ja auch was in englisch. prima!!! :)
Vielen Dank!
Grüße
Andreas
Hallo....
Wie funktioniert das dann? Ich stelle mir vor das der Server die ganzen eingeloggten Client kennt, und diese alle an einem besteimten Port "lauschen", und wenn eine neue Nachricht kommt der Server an alle Client IPs auf entsprechenden Port irgendein Signal sendet, so dass diese sich aktualisieren. Ist das so wenigstens die richtige Richtung, oder liege ich total falsch?
Warum kann PERL sowas nicht?
Jups !!!
Das erste Problem ist in diesem Fall der Client. Verwende ich einen Browser als ChatClient muss ich an Funktionen nehmen was ich kriegen kann und da ein Browser mit seinem HTTP Protokoll nicht für derartige Sachen geeignet ist, kann man den Browser eigentlich nur versuchen zu überlisten.(request-response)
Zum Grundaufbau!!!
Der Client meldet sich am System an, wie auch alle anderen. Sendet ein Client eine Message(MSG) wird diese an alle anderen weitergeleitet (broadcasting).
Ob nun der Client auf einem bestimmten Port lauscht(z.B. Java) oder die neue Nachricht einfach in eine bestehenden Stream geschrieben wird hängt doch sehr vom Model des Protokolls ab. Es gibt da unterschiedliche Modelle wie die Kommunikation laufen soll und der Programierer hat sich zu entscheiden welches er auswählt.
Wenn man sich für das Streaming über HTTP entscheidet (Browser) fallen 90Prozent der Möglichkeiten weg.
Ich habe zwar auch schon andere Konstruktionen gesehen aber wenn man den Browser benutzen will ist Streaming doch die Methode mit der meisten Akzeptanl. Dazu baut der Browser eine Verbindung zum Server auf und lädt eine bestimmte Website welche die MSG der User enthalten soll. Diese Seite wird aber nicht vollständig geladen(der Ladevorgang wird nicht abgeschlosssen). Damit will man erreichen das eine ständige Verbindung zum Server aufrechtgehalten wird. Auf der Serverseite wird der Timeout des Sockets auf einen hohen Wert gesetzt um zu verhindern das dieser Datenstrom automatisch geschlossen wird. Trifft eine neue Nachricht eines Clients beim Server ein, wird diese MSG in den DatenStrom des Clients geschrieben.
Ein HTTP Server kann aber durch solche Aktionen sehr stark belastet werden da er, wei schon bemerkt für derartige Client Server kommu8nikation nicht ausgelegt ist. Solche Systeme lassen sich bei Einsatz einer Skriptsprache sehr schlecht skalieren da ich keinen oder nur einen sehr geringen Zugriff auf Threads(Arbeitsprozesse)habe oder die Sprache für solche Systeme nicht ausgelegt ist.
cu
code2i
Hi!
Danke Dir, sehr interessant. Also das wirkliche Problem ist dann einen Client-Software zu haben, die im Gegensatz zum Browser nicht über http läzft, sondern - na wie auch immer. Aber man kann ja in den Browser verschiedene Clients einbinden, so wie Java-Applets, oder wie hier Flash! Und wie das ausshieht ist Flash sehr wohl in der Lage eine eigene Socket-Verbindung aufzubauen, aber mit welchem Protokoll dann? Kann Flash das Problem hier tatsächlich lösen? Kann Flash auf irgendwelche Messages, die direkt an das Script geschickt werden reagieren, os dass diese im Browser angezeigt werden?
Funktioniert Java genau so?
Aber ich nehme an ich habe da wieder was grundlegend falsch verstanden, oder:)
Grüße
Andreas
re Holla
Danke Dir, sehr interessant. Also das wirkliche Problem ist dann einen Client-Software zu haben, die im Gegensatz zum Browser nicht über http läzft, sondern - na wie auch immer. Aber man kann ja in den Browser verschiedene Clients einbinden, so wie Java-Applets, oder wie hier Flash! Und wie das ausshieht ist Flash sehr wohl in der Lage eine eigene Socket-Verbindung aufzubauen, aber mit welchem Protokoll dann? Kann Flash das Problem hier tatsächlich lösen? Kann Flash auf irgendwelche Messages, die direkt an das Script geschickt werden reagieren, os dass diese im Browser angezeigt werden?
Jo ! In Flash5 kannst du einen (TCP/IP)Socket öffnen, also einen Kanal zur Kommunikation. Theoretisch könntest du dann via ActionScript jedes beliebige Protokoll nachbauen. (Anwendungsebene) HTTP,FTP was auch immer. Oder halt ein eigenes Protokoll zum Beispiel für einen Chat oder Messenger. Du kannst den FlashClient anweisen auf einem gewissen Port nach Verbindungseingängen zu lauschen um gegebenenfalls auf eine Nachricht vom Server zu reagieren. Bei einem Chat werden aber meist diese Sockets dauerhaft offengehalten und nicht wie bei HTTP (Verbindung an Server - request(Anfrage) - response(Antwort) abwarten - Verbindung schließen).
Denn in einem Chat werden ja dauerhaft Daten an die Clients übertragen und für jede MSG eine neue Verbindung zum Client aufzubauen ist nicht besonders gut für die Performance des Servers.
Allerdings arbeitet Flash5 mit einem Protokoll auf XML Basis, das meint alle Protokolldaten werden per XML Style übergeben. Ist ja auch keine schlechte Idee.
Funktioniert Java genau so?
Jo ! Nur ist Java halt eine Programmiersprache und dadurch habe ich im Gegensatz zu Flash mit ActionScript alle Möglichkeiten. Ich kann mir Messenger basteln...komplette Chatclients... alles was ich halt will ist mit Java (naja fast alles) lösbar.
Aber ich nehme an ich habe da wieder was grundlegend falsch verstanden, oder:)
Nööö eigentlich doch nicht!
cu
code2i
klar kann man in php und perl chats schreiben...
einer meiner versuche seht ihr unter www.webholix.de/chat
username: denkt euch was aus
passwort: muss nur angegeben werden,w enne r ebreits reserviert ist...andernfalls wird username dann registriert
und es funzt :-)
hatte nur irgendwann keine lust mehr alleine weiter zu schreiben :-(
hab noch nen paar andere ansätze bei mir rumliegen, unteranderem ne socket-version in PERL, ne cgi-version in PERL ...
nenentwurf für nen server in c/c++ (mir fehlte nur bisher die zeit)
hallo Michaela,
qan der von dir angegebenen Adresse wird man zu einem "Portal" geleitet, das konsequent auf Flash beruht ... um genau so etwas zu bauen, müßtest du dich mit Macromedia Flash beschäftigen (oder einem Grafikprogramm, das Flash-Filme herstellen kann). Die "Dateien" für diesen Chat hast du zu einem großen Teil im Cahce deines Browsers und kannst sie dir von dort herausfischen und nachschauen, wie das gemacht ist.
Das wird dir allerdings nicht viel helfen, weil deine Frage so klingt, als würdest du kaum einen Flash-Film auseinandernehmen und neu zusammensetzen können und wollen. Warum greifst du nicht auf ein frei verfügbares kostenloses Chatprogramm zurück wie das, was hier bei SELFHTML zum Einsatz kommt ?
Christoph S.
Hi!
Das wird dir allerdings nicht viel helfen, weil deine Frage so klingt, als würdest du kaum einen Flash-Film auseinandernehmen und neu zusammensetzen können und wollen.
Korrigir mich wenn ich mich irre, aber wie kann man bitte Flash Dateien auseinander nehmen, wenn Sie erstmal als .swf abgespeichert sind???
Grüße
Andreas
Hoi,
Das wird dir allerdings nicht viel helfen, weil deine Frage so
klingt, als würdest du kaum einen Flash-Film auseinandernehmen
und neu zusammensetzen können und wollen.
Korrigir mich wenn ich mich irre, aber wie kann man bitte Flash
Dateien auseinander nehmen, wenn Sie erstmal als .swf abgespeichert
sind???
Christoph meinte damit, dass man sich den Aufbau anschaut und den dann
nachmacht. Per Hand.
Gruesse,
CK
hallo,
Christoph meinte damit, dass man sich den Aufbau anschaut und den dann
nachmacht. Per Hand.
jawohl, genau das meinte ich ;-)
Grüße aus Berlin
Christoph S.
Hoi,
jawohl, genau das meinte ich ;-)
Na siehstewoll ;-) Ick kenn dir ;-))
Gruesse,
CK
Tach...
Hallo Ihr lieben,
(wir haben dich auch lieb) ;.)
Ich möchte ein schönes Chat portal machen, und habe da schon ein Vorbild... schaut euch mal das www.heavencity.de an denn ich will selbst so einen machen programmieren wer kann mir da weiter helfen?
Ich kann mir es nicht leisten so ein Chat machen zu lassen heavencity.de kostet 15 T Euro und noch mal was monatl. ich habe ein server und so.
Wie was kostet heavencity 15 T Euro... wo hast du das denn her ?
Sagt bitte nicht ich soll was anderes suchen helft mir doch bitte.. was für ein programm brauche ich... liebe n Gruß Manu
Du brauchst Flash von Macromedia ! für die Clientsite...
und ein bischen ActionScript solltest du auch können. Das ist aber nicht weiter schlimm wenn du schon mit JavaScript umgehen kannst.
Und irgendeine Serverseitige Sprache die du beherscht. Fast egal welche ! Nur sollte man die Skalierbarkeit des Systems beachten. Die eine oder andere Scriptsprache ist dafür mehr oder weniger geeignet.
Wenn du ein richtig fettes Chatportal aufmachen willst musst du ne Menge gleichzeitiger User bedienen und solltest eher C Java oder C++ verwenden. Wenn du nur ne kleine Plauderecke aufmachen willst reicht auch PHP und ... etc.
Wenn du unbedingt auf ein Flash Frontend bestehst, musst du dich ein bischen mit XML ausseinandersetzen. Denn das Protokoll um mit einem Flash5 Client zu kommunizieren basiert auf XML. Ist auch sehr gut so und alles über XML musst du dazu nicht unbedingt wissen.
Ein Flash5 Client eignet sich besser als HTML Clients.... da Flash 5 einen eigenen Socket bedienen kann und dann noch ein prima Datenaustausch via XML händelt. Dann muss man nicht unbedingt das HTTP Protokoll vergewaltigen, welches für so ein Zeug gar nicht ausgelegt ist.
jokohoko
cu