Chat ohne Refresh

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Chat ohne Refresh

    Hallo.

    Bei einem Chat mittels PHP und MySQL hatte ich bislang immer das Problem, dass es einen Reloader geben muß, der nach neuen Einträgen prüft und dann das Hauptfenster refreshed.
    Gibt es da vielleicht eine elegantere Lösung, ohne dass das Fenster refreshed, bzw. es auch keinen versteckten Frame gibt, der alle 2 sek. die Datenbank prüft?

    Ja klar, mit Java ist das möglich - kann ich aber nicht

    Mit Flash habe ich schon überlegt - da kann man ja auch Daten aus einer PHP-Datei ziehen.

    Aber gibts außerdem noch was, was mittels PHP funktioniert?

    Grüße,
    Andi

  • #2
    Ja! Sockets!

    Kommentar


    • #3
      Streaming...soll aber sehr ressourcenlastig sein, deswegen hatte ich meinen Chat auch (leider) über Refreshs geschrieben...

      Kommentar


      • #4
        Also ich behaupte das ein socket chat weniger resourcenlastig ist als ein mysql-refresh shit...


        Am besten Du benutzt die Shared-Mem funktionen und pumpst die Usereingabe in den Memory und holst sie da mit nem Daemon wieder raus der sie per socket_write ins chatfenster sendet.

        Zum daemon konnektierst Du im Chatfensterframe über urlort und kannst sogar n query-string anhängen den Du mittels socket_read lesen kannst.

        socket_select würde ich vor JEDEM aufruf von read oder write mit dem jeweiligen (schreiben,lesen) Parameter verwenden (dann gehen keine Zeilen verloren) die anderen Werte = NULL setzen! und zwar $x = NULL angeben und nich nur NULL das funzt irgendwie nich richtig... Kein Plan warum... Schätze der will keine Konstanten und NULL is ja eine :-) Habe bereits 2 unterschiedliche Chatsysteme entworfen die diese "Technologie" nutzen und beide sind sehr recourcen-sparend!

        Ach ja.. beim daemon socket_create_listen(); benutzen nix anderes! und das socket nonblocken.. findeste alles im PHP-Manual... Kannst mir bei Problemen auch Fragen stellen.. Allerdings geb ich meine Chats nich raus sorry... :-(....

        Also denn :-)
        Zuletzt geändert von socket_shock; 11.02.2004, 00:43.
        [font=verdana] '][' .... düdeldüdel dü

        Gruss Socket
        -----
        Nein, ich programmiere kein Clan-Script für Dich, nein, auch nicht wenn Deine Schwester gut aussieht!
        [color=darkblue]
        Socket Funktionen[/color]
        [/font]

        Kommentar


        • #5
          Original geschrieben von socket_shock
          Am besten Du benutzt die Shared-Mem funktionen und pumpst die Usereingabe in den Memory und holst sie da mit nem Daemon wieder raus der sie per socket_write ins chatfenster sendet.
          rein aus neugier .. wie funzt denn das ?
          im php manual fand ich mal nichts ..
          mfg,
          [color=#0080c0]Coragon[/color]

          Kommentar


          • #6
            Hi,

            shm_, sem_ Funktionen

            oder Hier für Memory und Socket siehe meine Signatur :-)
            [font=verdana] '][' .... düdeldüdel dü

            Gruss Socket
            -----
            Nein, ich programmiere kein Clan-Script für Dich, nein, auch nicht wenn Deine Schwester gut aussieht!
            [color=darkblue]
            Socket Funktionen[/color]
            [/font]

            Kommentar


            • #7
              jupp .. die socket funktionen kenn ich, danke
              funktioniert das mit dem shared memory nur unter linux ?
              mfg,
              [color=#0080c0]Coragon[/color]

              Kommentar


              • #8
                Hi,
                Ja... genau mit dem und auch nur mit dem... Die Funktionen stehen unter Windows nich zur Verfügung.
                [font=verdana] '][' .... düdeldüdel dü

                Gruss Socket
                -----
                Nein, ich programmiere kein Clan-Script für Dich, nein, auch nicht wenn Deine Schwester gut aussieht!
                [color=darkblue]
                Socket Funktionen[/color]
                [/font]

                Kommentar


                • #9
                  Ja cool, da werde ich mich mal näher mit beschäftigen. Jetzt ber mal doof gefragt, streamt dann PHP die ganze Zeit in das Chatfenster, oder wie funktioniert das?
                  Gibt es da nicht eine Runtime-egrenzung für Scripts? irgendwann muß dass dann noch mal fertig sein? Oder ist das so wie ein laaaaanger Download, der ständig daten schickt?

                  Was passiert aber mit dem HTML-Code im fenster? Der Browser erwartete doch am Ende der Datei </body></html> oder wird das vernachlässigt?

                  Dank & Grüße,
                  Andi

                  Kommentar


                  • #10
                    Beim Streaming kann man via set_time_limit() die Ausführungszeit des Scriptes manipulieren. Dann macht man eine Endlosschleife mit while(0), fragt immer die Datenbank ab und wenn es neue Nachrichten gibt, werden sie drangehangen und mit flush() der Buffer vorzeitig geleert. Hab es selbst aber noch nie ausprobiert, hab eben wie gesagt gehört, dass es sehr resourcenlastig sein soll...

                    Kommentar


                    • #11
                      Hi!,

                      @KTJ

                      Ein OB_IMPLICID_FLUSH sollte reichen.... Ich halte aber nichts von der Methode das ein PHP-Script angesprochen wird und durchgehend läuft... Da find ich die Methode mit dem Daemon besser zumal der nich flushen muss.. Man hat dann zwar einen daemon auf dem Server laufen aber Kein PHP + Apache was die ganze Zeit rennt... Ich hab zwar keinen Plan was von beidem speicherintensiver ist aber trotzdem bevorzuge ich die daemon-methode.
                      [font=verdana] '][' .... düdeldüdel dü

                      Gruss Socket
                      -----
                      Nein, ich programmiere kein Clan-Script für Dich, nein, auch nicht wenn Deine Schwester gut aussieht!
                      [color=darkblue]
                      Socket Funktionen[/color]
                      [/font]

                      Kommentar


                      • #12
                        socket

                        mich würde die methode die der socket-man beschriebe ebenfalls intressieren ... würde mich um antwort freuen, bin schon am verzweifeln ...


                        mfg
                        benjamin

                        Kommentar

                        Lädt...
                        X