[PHP] fsockopen sessie door laten lopen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Maxonic
  • Registratie: September 2000
  • Laatst online: 05-09 22:23
Door middel van de functie fsockopen maak ik in een PHP-Script verbinding met een mailserver. Deze checkt of er mail is en zo ja geeft hij het aantal berichten weer.
Als er mail is kan er op een link geklikt worden om de inhoud van de mailbox te weergeven. Het script wordt hierbij dus opnieuw geladen.

Nu gebeurt er in feite dus dit:

Verbinding...
+OK Hey Welcome!
USER bla
+OK
PASS blabla
+OK
STAT
+OK 3 624
QUIT

Verbinding...
+OK Hey welcome!
USER bla
+OK
PASS blabla
+OK
NOG EEN COMMAND
+OK EN EEN RESPONS
QUIT

Ik maak dus elke keer als ik het scrip laad opnieuw verbinding met de server.
Kan zo'n socket niet op één of andere manier open blijven staan?
En maakt het uit dat je voor iedere aktie opnieuw connect? (qua snelheid bijvoorbeeld) Ik heb nl geen zin om eer een java-applet voor te gaan maken. Zoiets moet toch ook gewoon in php kunnen?
Alvast bedankt,

[ Voor 3% gewijzigd door Maxonic op 15-05-2003 18:21 ]


Acties:
  • 0 Henk 'm!

Verwijderd

HTTP is een stateless protocol. Zodra PHP code heeft gerund en de pagina naar de browser is verstuurd, wordt alles weggegooid. Er zijn 2 manieren om toch nog state te bewaren, nl. client-side met cookes, en server side met sessies. Aangezien de connectie vanaf de server worden gemaakt, zou de connectie daar bewaard moeten blijven. Ik vermoed echter dat het onmogelijk is om een connectie in een session te stoppen.

Zelf als het zou kunnen denk ik niet echt dat het een goed idee is, noch dat het een bijzonder grote performancewinst zou opleveren. 1 maal een connectie maken per pagina zal niet schokkend veel tijd kosten in vergelijking met de andere acties die je onderneemt binnen je pagina, waaronder de interactie met de mailserver.

Acties:
  • 0 Henk 'm!

  • Glock
  • Registratie: November 2001
  • Niet online
Ik weet niet of het wat snelheidswinst geeft maar is dit wat je zoekt?? ;)

http://www.php.net/manual/en/function.pfsockopen.php

edit:
Lees btw ook alle usernotes erbij, staat ook nuttige info bij ;)

[ Voor 24% gewijzigd door Glock op 15-05-2003 20:04 ]


Acties:
  • 0 Henk 'm!

  • Maxonic
  • Registratie: September 2000
  • Laatst online: 05-09 22:23
Ah, er bestaat dus gewoon een persistent versie van!
Hoe werkt zoiets trouwens? Als de connectie niet gesloten wordt, timed hij dan na bepaalde tijd uit? Valt dat nog ergens in te stellen?

Acties:
  • 0 Henk 'm!

  • Mickman
  • Registratie: Juni 2001
  • Laatst online: 27-08 11:32
Wanneer je verbinding wilt maken, en er komt geen reactie, dan timed hij uit ja (dit kan je zelf instellen), anders heb je gewoon een 'verbinding'.
Als het goed is blijft je socket dan open staan, als je klaar bent met verzenden. Weet wel dat er problemen zijn om je persistente connectie mee te nemen naar een ander script, maar het is wel mogelijk.