PHP Chat via Socketserver

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

  • PHP Chat via Socketserver

    Hallo, wie kann ich via php einen gescheiten Chat machen?
    Ich weiss HTTP ist nicht die beste Lösung, aber es sollte schon so gehen.
    Hab irgendwo gelesen das das mit Socketservers geht irgendwie.
    Es sollte nachher so aussehen wie das Teil von chatworld.de
    Hat jemand tipps???!

  • #2
    phpopenchat ist imho eine gute anlaufstelle.
    dort kannst du dich durch die quellen lesen wie du willst.

    http://phpopenchat.org/
    1101100 1101001 1100110 1100101 1101001 1110011 1100001 1100010 1101001 1110100 1100011 1101000

    /(bb|[^b]{2})/

    Kommentar


    • #3
      Re: PHP Chat via Socketserver

      Original geschrieben von Flo1810
      Hallo, wie kann ich via php einen gescheiten Chat machen?
      Ich weiss HTTP ist nicht die beste Lösung, aber es sollte schon so gehen.
      Hab irgendwo gelesen das das mit Socketservers geht irgendwie.
      Es sollte nachher so aussehen wie das Teil von chatworld.de
      Hat jemand tipps???!
      Dir ist aber schon klar, dass du auch bei der Übertragung der Datein immer ein Protokoll zur Übertragung der Daten nutzen musst? Weshalb also nicht HTTP?

      Es kommt nur auf die Komprimierung der Daten, bzw auf den Umgang mit denselbigen an. Auch mit Javascript in Verbindung mit PHP lässt sich einiges, recht performantes zaubern.

      Das "Problem" besteht viel mehr im Einsatz von PHP an sich, mit einer Hochsprache lassen sich Socketapplikation deutlich effizienter verwirklichen.

      Kommentar


      • #4
        Einen guten Ansatz bildet der patServer von PHP-Tools .
        Ein Programmer der Seite hat dazu auch mal den sogenannten patChat realisiert. Aber wo der als Download zu finden ist, weiss ich momentan nicht. Der wurde aber mal in einer Ausgabe des Magazins PHP Solutions sehr gut beschrieben und als Quellcode bereitgestellt.

        Kommentar


        • #5
          Socket /HTTP - Server

          Hallo.
          Ich möchte gerne einen Chat relaisieren, der natürlich ohne meta refreshs und ohne JS oder Java auskommen soll.
          Dabei kam mir nun folgende Idee...

          Ich kann doch in php einen einfachen Webserver erstellen.
          Wenn ich diesen nun so modifiziere das die Verbindung nicht getrennt wird, sondern irgendwie mit while(1) erhalten bleibt, dann sieht der client ja immer die neusten Daten nicht wahr?!

          Wäre über interessante Lösungsvorschläge dankbar.. Ach und bitte keine Postings alla - würd ich nicht in php machen - ich weiss nämlich was ich will

          Kommentar


          • #6
            Wäre über interessante Lösungsvorschläge dankbar.. Ach und bitte keine Postings alla...
            Also dann kein Posting à la...
            Natürlich kannst du PHP in eine Endlosschleife hängen, das Prob wäre
            dann nur dass die max_execution time in der php.ini wohl ständig überschritten würde und der User nur Fehlermeldungen sehen wird.
            Drum imho mach das nicht in PHP...

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              So ein Posting von jemanden der andere in seiner Signatur zum "erst lesen - dann fragen" fordert?!

              max time? Schon mal was von

              set_time_limit (0)

              gehört?! Veilleicht? Oder gelesen eher
              Aber das ist auch nicht das prob.

              Schon allein sowas blödes hier tut nicht
              for($i=0;$i<500;$i++)
              {
              echo "HHALLO";
              flush();
              sleep(1);

              }

              >>>>Warum zeigt mir Browser erst alles am Schluss und nicht nach und nach?!

              Kommentar


              • #8
                die idee ist in der form recht unumsetzbar, afaik. weil http ein stateless protocol ist.

                kannst du ein beispiel von einem chat nennen, bei dem keinerlei js, java, fremd-clients, flash/activex oder metarefresh benutzt wird?

                mach dir keine sorgen und nutze xmlhttprequest.

                Kommentar


                • #9
                  Gut, chatworld.de
                  Wenn mir wer sagt wie genau das geht wäre toll

                  Kommentar


                  • #10
                    ich zitiere:

                    Technische Herausforderungen
                    Bitte überprüfe bei technischen Problemen zuerst einmal, ob du Cookies und Javaskript eingeschaltet hast und Pop-ups zulässt.
                    http://chats.kunden.abacho.net/chatw...rld_faq.html#3

                    und den osterhasen gibt's auch nicht.

                    Kommentar


                    • #11
                      Nachtrag: Und wie würde das mit dem XMLhttpRequest im Detail tun?!
                      Scheint ja nicht sehr bekannt zu sein... Google ist bei weitem nicht so ergibig wie bei meta refresh

                      Kommentar


                      • #12
                        Salut
                        PHP-Code:
                        for($i=0;$i<500;$i++)
                        {
                        echo 
                        "HHALLO";
                        flush();
                        sleep(1);


                        Schönes Beispiel... Und jetzt überleg dir mal wie du es anstellen
                        könntest du Usereingabe in dieses laufende Script zu kriegen.
                        Jede Usereingabe wird eine neue Instanz des Scripts starten und nach
                        100 Antworten dürftest du dementsprechend 100 mal das Script am
                        laufen haben.
                        Tip: Das solltest du Clientseitig und nicht serverseitig lösen.

                        Gruss

                        tobi
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar


                        • #13
                          Keine Overflächlichen Analysen bitte.
                          JS wird da nur verwendet um das Bild zu scrollen!
                          Hat also nix mit der Technik zu tun...
                          Soweit war ich schon...

                          Kommentar


                          • #14
                            Wie gesagt sollt das ein socket server werden.. das es so nicht geht weiss ich auch.. aber das ist trotzdem buggy das er die daten nach dem flush() nicht bringt.

                            Kommentar


                            • #15
                              Original geschrieben von Flo1810
                              Keine Overflächlichen Analysen bitte.
                              und das von dir ...?
                              du solltest langsam mal deinen tonfall und deine formulierungen überdenken - denn deinem wissenstand angebracht sind sie vermutlich nicht.

                              Wie gesagt sollt das ein socket server werden.. das es so nicht geht weiss ich auch.. aber das ist trotzdem buggy das er die daten nach dem flush() nicht bringt.
                              hast du dich auch mit den user-kommentaren im manual auseinandergesetzt?



                              und außerdem unterlässt du bitte zukünftig das crossposten!
                              *zusammenführ* & *verschieb*
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X