Nusoap persistent connection
Ένας από του ελληνικούς καταλόγους που θέλω να καταχωρεί αυτόματα το seo tool είναι και το topsites.gr. Για μένα είναι ο καλύτερος ελληνικός κατάλογος, αλλά δεν είναι ο δημοφιλέστερος. Το topsites.gr το έχει ένας φίλος, ο Νίκος Παπανώτας, ο οποίος μου επέτρεψε να φτιάξω ένα web service, για να το χρησιμοποιήσω για την καταχώριση των web sites.
Ξεσκονίζοντας τους κώδικες για τα web service θυμήθηκα ένα πρόβλημα που είχα συναντήσει με τον smart-publisher, ένα open source project που έχω αναπτύξει και ανήκει στην εταιρεία netwerk την οποίας τυχαίνει να είμαι ένα από τα ιδρυτικά στελέχη της. Ο smart-publisher είναι μια web based εφαρμογή σε php οι οποία βρίσκει τις διαφορές σε αρχεία & database (mysql), ανάμεσα σε ένα development και σε ένα production server και τις κάνει upload. Η επικοινωνία μεταξύ των δύο servers γίνεται με web service. Επειδή το web service αυτό μεταφέρει μεγάλη πληροφορία, για να κάνει το compare και στην συνέχεια το publish, ανοίγει πολλαπλά connections με αποτέλεσμα κάποια από αυτά να κλείνουν δημιουργώντας προβλήματα. Αυτό οφείλεται στο γεγονός ότι μπορεί να κοπεί η σύνδεση είτε από το firewall (πχ. προστασία για dos attack) στον server είτε από ένα cisco συστημένο έτσι, ώστε να προσφέρει αυξημένη προστασία στο client.
Για τα web service χρησιμοποιώ το Nusoap project, και την λύση στο παραπάνω πρόβλημα την έδωσα προσθέτοντας στο soapclient μεγαλύτερο χρόνο ανταπόκρισης στα sockets (timeout & response timeout) και κρατώντας το ίδιο connection (HTTP Persistent Connection).
Nosoap Definition:
function soapclient($endpoint,$wsdl = false,$proxyhost = false,$proxyport = false,$proxyusername = false, $proxypassword = false, $timeout = 0, $response_timeout = 30)
Πριν:
$SoapClient=new soapclient($endpoint);
Μετά:
$SoapClient=new soapclient($endpoint, false, false, false, false, false, 10, 600);
$SoapClient->useHTTPPersistentConnection();


