Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Auki oleva HTTP yhteys

Sivun loppuun

Matso [13.04.2008 17:11:59]

#

Jos mulla on vaikka tällanen php scripti:

<?php
set_time_limit(0);
while(true){
	echo 'a';
	flush();
	ob_flush();
	sleep(1);
}
?>

Se lähettelee siis sekunnin välein "a" merkkiä ja pitää yhteyden niin kauan auki kun mahollista, niin kuluttaako toi auki oleva yhteys kaistaa yhtään? Siis noiden "a"-kirjainten kuluttaman kaistan lisäks?

ajv [13.04.2008 18:49:38]

#

Ei minun ymmärtääkseni. Pieni mittaus kännykällä antoi tulokseksi, että aina kun palvelin lähettää tuon a-kirjaimen, dataa kulkee palvelimelta asiakkaalle 58 tavua ja asiakkaalta palvelimelle 52 tavua. Koodi oli sama, muutin vain sleep(1) => sleep(20). Koodi täällä, jos joku muu haluaa mittailla.

Matso [13.04.2008 19:18:40]

#

Hmm.. mitähän turhaa se oikee lähettää siinä mukana, kun 58 tavua on aika paljon a-kirjaimesta :o

ajv [13.04.2008 19:48:20]

#

No ei se oikeen riitä, että sinne verkkoon kirjoittaa kirjaimen 'a' :) Täytyy siinä ip-viestissä samalla lähettää paljon muutakin, yhtenä oleellisimmista tiedoista mm. vastaanottajan osoite.

Matso [13.04.2008 20:31:48]

#

No eikö muka ip, portti ja viesti riitä?

ajv [13.04.2008 21:19:39]

#

No ei. En jaksa spekkejä kaivaa, mutta ainakin vastaanottajan ip, lähettäjän ip, portti, tarkistussummat, protokolla ja n tavua muuta schaissea :)

Edit: Tosin voihan olla että sieltä tulee oikeasti useampi viesti. En tiedä hirveän syvällisesti mitä dataa tuossa oikeasti kulkee. Ja ei tuo minun mittausmenetelmänikään ehkä se absoluuttinen totuus ole... :D Mutta varmasti siellä kulkee dataa enemmän kuin tuo a-merkki. Ja näyttäisi, että ei kulje dataa, jos et sitä puskuria lähetä clientille.

Matso [14.04.2008 11:42:00]

#

Vielä yks kyssä tätä sivuten. Jos teen javascriptin joka avaa yhteyden tohon, niin onko mahollista lähettää siltä javascriptiltä tolle php scriptille tietoa avaamatta uutta yhteyttä? Että sais molempisuuntasen vuorovaikutteisen yhteyden.

Kokeilin jotain tällasta, mut ei tuntunu toimivan.

Avaan yhteyden, mutten suljekaan sitä..

request.open("POST", file, true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
request.setRequestHeader("Content-length", params.length);
//request.setRequestHeader("Connection", "close");
request.send(params);

Ja sitte myöhemmin yritän lähettää dataa samalla yhteydellä:

request.send("test=asd");

ja tos PHP scriptissä on tällanen:

<?php
set_time_limit(0);
while(true){
    if(isset($_POST['test'])){
        echo 'SANOIT: '.$_POST['test'];
    }
    flush();
    ob_flush();
    usleep(100000); //Nukutaan kymmenesosa sekunti
}
?>

neau33 [14.04.2008 12:19:54]

#

Moikka Matso!

Käytä AJAXia

Matso [14.04.2008 14:16:05]

#

neau33 kirjoitti:

Moikka Matso!

Käytä AJAXia

En nyt tiedä mitä tolla meinaat. Ihan "AJAX" periaatteella, eli Javascrriptillä HTTP requestia luon jne.. mutta ideana olis, että ei tulis sitä viivettä aina luoda yhteyttä uudelleen. Eli pitäs saada JS:llä yhteys pysymään auki PHP scriptiin, niin tiedon siirto olis nopeempaa.

Eli yritän saada molemminpuoleista aktiivista yhteyttä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta