Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα στην κοινότητα,

 

αυτό που έχω κάνει μέχρι τώρα είναι το ανάποδο από αυτό που έχω γράψει στον τίτλο.

Δηλαδή, ένας client κάθε X χρόνο ζητάει δεδομένα από τον Server για μια WEB εφαρμογή.

 

Αυτό το κάνω με js/ajax/php.

 

Θέλω ακριβώς το αντίθετο, δηλαδή ο server να δίνει τα data στον client χωρίς να του ζητάει ο client συνέχεια. Όποτε έχει ο server κάτι θα το στέλενει.

 

Επειδή δεν ξέρω καθόλου από που να ξεκινήσω και η αναζήτηση μέσα από το Internet με μπέρδεψε παρά με βοήθησε έχει κάνεις κάτι να προτείνει; Έχει ασχοληθεί κανείς με το παραπάνω θέμα;

 

Οποιαδήποτε βοήθεια θα ήταν ευπρόσδεκτη.

Δημοσ.

Είχα κάνει 2 project για τη σχολή μου όπου χρησιμοποίησα reverse ajax (νομίζω ότι αυτό είναι που ψάχνεις)

Δυστυχώς είχα γράψει και τα 2 σε java. Χρησιμοποίησα το DWR2.0 για να κάνω push data από το server σε όλους τους συνδεδεμένους χρήστες όταν αυτά ήταν έτοιμα.

 

Μπορείς βέβαια να κάνεις και polling όπου κάνεις requests στο server ανα τακτά διαστήματα, αλλά βέβαια αυτό μπορεί να σου προκαλέσει προβλήματα ανάλογα με τον αριθμό των requests.

 

Ρίξε μια ματιά στο xaja, δε το έχω χρησιμοποιήσει ποτέ, αλλά λέει ότι ειναι reverse ajax framework για php.

 

Ελπίζω να βοήθησα λιγάκι :)

Δημοσ.

Αυτή την στιγμή κάνω polling και δεν ξέρω τι θα γίνει όταν δεν έχω 1-2 χρήστες αλλά πολύ περισσότερους.

 

Για αυτό ψάχνω πως γίνεται ο server να στέλενει μηνύματα και να εμφανίζονται στον client.

 

Το είδα και αυτό που μου έστειλες αλλά δεν μπόρεσα να κάνω κάτι.

Δημοσ.

Δες λίγο και αυτή τη παρουσίαση προς το τέλος έχει μερικές προσπάθειες που έχουν γίνει με php.

 

Αυτή τη περίοδο γράφω την πτυχιακή μου σε μία εταιρεία που έχουν το software τους σε php. Έχουν ένα pubsub feature για τη υλοποίηση του οποίου χρησιμοποιούν XMPP.

Σκεφτόμαστε να το αλλάξουμε και να χρησιμοποιήσουμε το native pubsub feature της Redis. Φυσικά η αλλάγή δε γίνεται μόνο και μόνο για το pubsub αλλά και για άλλους λόγους, οπότε δε σου προτείνω να βάλεις τη Redis, αλλά ρίξε μια ματιά και στο APE and node.js

Δημοσ.

Διαβάζοντας την παρουσίαση που μου έστειλες στο link, αυτό που λέει είναι ότι πραγματικό real time push γίνεται ΜΟΝΟ με websockets και server sent events.

 

Ουσιαστικά, όλα τα άλλα είναι μια "απάτη". Δηλαδή, χτυπάμε μια φορά τον server και κρατάμε την σύνδεση ανοιχτή για όσο το δυνατόν γίνεται.

 

Έχω μπερδευτεί....

Δημοσ.

Τα slides στα έστειλα γιατί είδα προς το τέλος ότι είχε κάποια links με attempts. Δε τα κοίταξα τότε και ούτε τώρα τα κοίταξα βέβαια,αλλά μπορεί να τα δώ αύριο.

 

Τα server sent events δε τα ξέρω. Κι αυτά στην αυριανή λίστα μελέτης.

 

Το websocket, δημιουργεί ένα κανάλι διπλής επικοινωνίας πάνω στο websocket protocol.

Στέλνεις ένα request στο server για αλλαγή από http σε websocket και ο server απαντά ότι συμφωνεί με την αλλαγή. Αν ο browser σου υποστηρίζει websockets τότε δημιουργείται το κανάλι επικοινωνίας που μένει ανοιχτό μέχρι να το κλείσεις.

 

Όλα αυτά βέβαια τα ξέρω θεωρητικά. Το μόνο που έχω δοκιμάσει είναι το cometd σε ένα Jetty Continuations πείραμα και το dwr που το χρησιμοποίησα σε ένα distributed game με maximum 4 χρήστες. Και τα δύο έγιναν με java.

 

Για να μη μπλέκεις και λόγο του ότι έχεις κάνει implement τον polling μηχανισμό, κάνε ένα stress test στην εφαρμογή σου για να δεις πως συμπεριφέρεται σε high traffic. Ένα εργαλείο που έχω χρησιμοποιήσει είναι το JMeter

Δημοσ.

Σε ευχαριστώ για το μέχρι τώρα ενδιαφέρον σου.

 

Το θέμα δεν είναι για πόσο θα αντέξει ο server μου αλλά θέλω να τον κάνω με αυτό τον τρόπο.

 

Είναι πιο σωστός.. αλλά και πιο δύσκολος...

 

Θα το ξανά κοιτάξω μπας και βγάλω κάποια άκρη.

Δημοσ.

Με ενδιαφέρει και μένα το θέμα και αν θέλω κάποια στιγμή να γίνω σωστός web developer θα πρέπει να ξέρω πως να χειρίζομαι real time information :)

 

Καθώς λοιπόν διάβαζα διάφορα στο internet έπεσα πάνω σε αυτό. Εψαξα λίγο ακόμη γιατί μου φάνηκε ενδιαφέρον. Ασχολούμε με τη Redis τελευταία, αλλά δεν είχα σκεφτεί το συνδυασμό με το Node.js

Βρήκα λοιπόν αυτό το thread

Δημοσ.

Λοιπόν,

 

έπαιξα με το http://pusher.com/

 

και πράγματι τα κατάφερα.

 

Βέβαια, αυτοί έχουν φτιάξει ένα δικό τους pusher API και αυτό χτυπάμε και παίζει.

 

Εγώ θέλω όμως το ΔΙΚΟ μου :rolleyes: :rolleyes:

Δημοσ.

Πραγματικά η λύση είναι Web Sockets και όταν θα υποστηρίζονται κανονικά σε κάθε browser τότε θα αλλάξουν πολλά πράγματα. Ως τότε η λύση είναι μερικά bridges μεταξύ JavaScript και Flash (π.χ. https://github.com/gimite/web-socket-js) . Πάντως ακόμα και αν είναι για πειραματικό project αξίζει σε rnd να ασχοληθεί κάποιος με το πώς δουλεύει αυτή η τεχνολογία καθώς πιστεύω ότι θα αλλάξει τον τρόπο που προγραμματίζουμε στο μέλλον.

Δημοσ.

Εγώ θέλω όμως το ΔΙΚΟ μου :rolleyes: :rolleyes:

 

Η μόνη απάντηση που έχω πρόχειρη είναι το native support of pubsub του Redis. Εγώ τουλάχιστον κοιτάω εκεί προς το παρόν!

 

Ένα παράδειγμα pubsub σε php

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...