Vom Server zu Client senden für Chat
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
antwort
apache
datum
frage
funktionieren
http
interessieren
laufen
option
pollen
protokoll
realisieren
server
stichwort
tabelle
teddy
url
verbindung
vorhandensein
weben
-
Hi Leute,
ich programmier einen Chat, und da bräuchte ich ne Möglichkeit dem Client mitzuteilen wenn es neue einträge gibt.
Geht so etwas ?, also dass bei einem neuen Post, der server dem client den Aktuellen eintrag übermittelt ? Es gibt doch da sowas
wie push. Außerdem bitte keine Antworten wie
Frag doch einfach mit AJAX immer wieder beim Server an.
Das ginge, aber ich wollte fragen ob es da eine Andere Möglichkeit gibt,
Mfg ventos -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Mehrere Möglichkeiten:
1) Web-Sockets, das funktioniert aber hier nicht
2) Long-Polling, wird hier aber auch nur begrenzt funktionieren
3) weitere Beschreibungen -
Stichwort: Cronjob
-
Cronjob: das Hilft mir nicht weiter...
Hackyoulife, wie gänge das mit den Web-Sockets denn, es soll später eh mal woanders laufen -
hackyourlife schrieb:
Und wie soll das funktionieren? Wie soll der dem Client mitteilen, dass Daten vorhanden sind? Genau um das geht es hier doch?
In der DB fragen, ob "neu" gleich 1 oder 0 ^^ -
kill-a-teddy schrieb:
Kein Polling, das ist hier vom TE nicht gewünscht!
In der DB fragen, ob "neu" gleich 1 oder 0 ^^
ventos schrieb:
Zuerst mal was sind WebSockets
wie gänge das mit den Web-Sockets denn, es soll später eh mal woanders laufen
Eine kurze Einleitung dazu gibts hier, die offizielle Seite gibts hier.
Dabei wirst du sicher auf einer der Seiten fündig werden -
kill-a-teddy schrieb:
hackyourlife schrieb:
Und wie soll das funktionieren? Wie soll der dem Client mitteilen, dass Daten vorhanden sind? Genau um das geht es hier doch?
In der DB fragen, ob "neu" gleich 1 oder 0 ^^
Toll, das Script zum senden an die Clients soll sowieso automatisch mit dem Postscript ausgeführt werden.
Das Hilft mir nicht weiter. Da könnte man glecih Ajax hernehmen ^^ -
ventos schrieb:
Als ob alles was nicht Polling ist kein asynchrones Javascript wäre
Da könnte man glecih Ajax hernehmen ^^ -
1. Wären Web-Sockets mit PHP zu realisieren ?
2. Wie währe ein Long-Polling zu realisieren ? -
ventos schrieb:
Dir ist hoffentlich klar, dass der normale Apache keine WebSockets unterstützt.
1. Wären Web-Sockets mit PHP zu realisieren ?
Es gibt zwar ein Modul, mod_websocket, aber das ist vermutlich nicht das was du willst.
Wenn du PHP nutzen möchtest gibt es z.B. php-websocket, aber das ist eine eigenständige Anwendung, und um das ausführen zu können musst du wohl mindestens einen vServer haben. -
Was is mit der 2. Frage. Das würde mich eher interessieren.
-
Gut, aber hier wird die Antwort nach ner Zeit gesendet. Wir mach ichs, dass sie bei vorhandensein eines neuen Beitrags gesendet wird ?
-
ventos schrieb:
Nun, das hängt davon ab wie dein System funktioniert… so könnte dein Script eine Verbindung mit einem echten Chat-Server öffnen und ankommende Daten an den Client schicken. Möglichkeiten gibt es jedenfalls sehr viele.
Gut, aber hier wird die Antwort nach ner Zeit gesendet. Wir mach ichs, dass sie bei vorhandensein eines neuen Beitrags gesendet wird ? -
Der chat wird in ner MySQL Tabelle gespeichert.
-
Es gibt etwas, das nennt sich "Server Sent Event" (http://sateffen.bplaced.net/technik/was-bedeutet-server-send-event.html), aber das ist mit PHP ein wenig schwerer. Da müsstest du im Hintergrund mit NodeJS beispielsweise Arbeiten. Aber vllt ja eine Option für dich?
Liebe Grüße -
Ich hab keinen zugriff auf diese node.js... Das is net mein Privatserver
Oder gibts da ne Möglichkeit ?
Und in welchem Protokoll sollte das gehen, ohne Pollen ?
Beitrag zuletzt geändert: 22.11.2012 21:51:04 von ventos -
NodeJS kriegst du hier auch nicht. Das ist ein eigenständiger Serverdienst. Mein Gedanke ging dahin, ob du vllt mehr in Richtung eines eigenen Servers kommst. NodeJS setzt du ein wie einen Apachen.
SSE (Server Sent Event) ist über das TCP Protokoll eine Verbindung, die du vllt auch als "Push" kennst. Es bleibt eine Verbindung offen, über die kein Traffic geht. Aber wenn der Server was hat, dann schickt er das sofort raus, und das ohne Pollen. Es geht aber nur mit einem eigenen Server. Darum habe ich es reingeworfen, ob das vllt eine Option wäre (man weiß ja nie, was die Person hinter dem anderen Ende der Leitung tatsächlich vor hat, oder macht)
Liebe Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage