Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Problem beim beenden des Browsers

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Problem beim beenden des Browsers

    Einens chönen guten Abend,

    Also ich in ja derjenige der einen Chatserver mit PHP client programmiert hat *g*

    Ich hab jetzt schon den ganzen Abend versucht herauszukriegen was die Ursache für folgendes Problem ist:

    Mein Server pingt den Client regelmäßig an.

    Wenn ich meinen PHP-Client über meinen PC hier über apache und co aufrufe, den Browser schließe dann bleibt PHP beim 1. besten Flush stehen, weil es wartet das es etwas auf dem Browser ausgeben kann und wird natürlich weil es stehen bleibt vom Server entfernt wegen eines Ping Timeout (so ist das auch geplant und auf meinem PC funktioniert es super)

    Nun hab ich den PHP-Client auf meinen Webserver (Mit linux) kopiert, wenn ich ihn aber dort ausführen und den Browser schließe arbeitet PHP im Hintergrund munter weiter und ihn interessiert es nicht das der Browser schon zu ist, auch die Funktion connection_aborted() ziegt keinerlei Wirkung als würde es PHP garnicht interessieren...

    ich habd ie PHP.ini schon größtenteils an die auf meinem PC angeglichen also scheint es daran ncith zu liegen (außer ich hab vielleicht was übersehen) vllt isses auch apache schuld, ich würd gern wissen ob jmd eine Idee hat wie ich PHP begreiflich mache das der Browser zu ist so das er das script stoppen kann

    (der Client muss in einer Endlosschleife laufen weil ja PHP den inhalt einer Seite nur ändern kann solange sie läuft, ausgabe funktioniert eben mit Flush(); aber wie gesgat er scheint auf garnichts zu reagieren...)

    Ich hoffe jemand weis rat


  • #2
    PHP != Chatlösung. Wieso machst Du keine Ajaxanfragen? Die bleiben aus, sobald der Browser zu ist.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Weil isch mich dann in Ajax einlesen müsste *g*

      Mal abgesehend avon das ich weis das Ajax besser ist ich es aber nunmal gerne mit PHP versuchen möchte was soweit auch super klappt

      Ich frage mich nur warum der flush() auf mienem Heim-PC mit Windows einen Timeout erzeugen kann

      aber auf dem Server mit Linux ignoriert wird

      Kommentar


      • #4
        Dann mach halt. Sind ja Deine Probleme
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Zitat von soulan Beitrag anzeigen
          Weil isch mich dann in Ajax einlesen müsste *g*
          Der Grund ist aber echt schlecht.

          1. AJAX ist so einfach wenn du ein JS Framework (z.B. jQuery) nutzt!!

          2. Ist dein Argument etwa so wie: Ich will mein Auto aber mit eckigen Rädern bauen anstatt mit runden weil ich keine Lust hab erst zu lernen wie man runde Räder baut!

          Es gibt einfach Techniken die NICHT für bestimmte Sachen geeignet sind! Wir helfen dir gerne wenn du bestimmte Probleme hast. Wenn du aber experimentierst mit Techniken die nicht geeignet sind dann wird dir wohl kaum einer groß helfen wollen.

          Kommentar


          • #6
            Ich habs mit Ajax probiert aber ich find nichts was mir hilft eine schöne socket connectin aufzubauen außer XMLSocket zeugs und das funktioniert aus welchem grund auch immer nicht richtig ôo also da passiert garnichts

            Code:
            <html>
            	<head>
            		<script>
            		// just an example
            		var connected = false;
            		onload = function() {
            			var xmls = new XMLSocket();
            			xmls.init("xmlsocket-div");
            			
            			// if you need to connect directly use a delay
            			// function because swf that's will be add
            			// inside div should be totally downloaded.
            			// Max 700 bytes of swf requires
            			// about 1 or 2 seconds to be downloaded.
            			function connect() {
            				xmls.onConnect = function(success) {
            					if(success)
            						connected = true;
            						alert("geht");
            					else
            						connected = false;
            						alert("geht nich");
            				};
            				xmls.connect('localhost', 9000);
            			};
            			setTimeout(connect(), 3000);
            		};
            		</script>
            	</head>
            	<body>
            		<div id="xmlsocket-div"></div>
            		
            	</body>
            </html>
            zudem weiß ich ja das es Funtioniert, es funktioniert ja auf meinem PC nur aufm Linux server nicht und die Versionen der WebServer sind nahezu gleich

            hab das ganze idng aufgebaut und es zum laufen gebracht und nun muss ich es nochmal auf einer mir nicht ganz bekannten Sprache machen (ich hab nichtmal eine Dokumentation der Befehle gefunden für Socketkram nur einzelne seiten) nur weil der Server meint "ach ist mir egal ob flush() geht oder nich" begeistert bin ich von dem vorschlag nicht wenn ich es schon fast fertig hab

            zumal "PHP != chatlösung geeignet" es funktioniert, es verbraucht nicht annähernd soviel Speicher wie vllt manch einer Denken mag was an meiner schleifenkonstruktion liegen kann.. gerade mal knapp 100kb ram per client...

            und nun muss ich das verwerfen weil der flush() auf mienem Server nicht so reagiert wie auf meinem Home-Server.

            Ich mein Er aktualisiertd ie Seite mit flush(); aber is ihm egal ob das klappt oder nicht


            Zudem wollt ich vermeiden das ein user zusätzliche Plugins braucht um am Chat teilnehmen zu können

            Kommentar


            • #7
              Habe das Problem Serverseitig und Clientsietig gelöst trotzdem danke

              Kommentar

              Lädt...
              X