Moin zusammen!
Ich hab auch mal eine Frage, eine doch recht komplexe. Ich hoffe, dass einer von euch eine Idee hat.
Für verschieden Projekte baue ich grade eine Social Interaction Grundebene - also Messaging, Posts, Kontaktkreise, Profile und co. Ein Hauptelement dessen ist der s.g. Stream - vergleichbar mit der Facebook Home Ansicht, wo alle Posts von Freunden und Abonnierten Usern angezeigt werden. Und um ebenjene Ansicht geht es hierbei auch.
Die Posts werden komplett per Ajax nachgeladen. Das bedeutet, dass über verschiedene Links zu beiden Seiten des Contents die Inhalte in der Mitte nachgeladen werden, was in den meisten Fällen Posts sind. Die Posts haben noch einige Zusatzinformationen, wie zum Beispiel Tags und Likes (also z.B. die Facebook Likes). Nun kommt aber der Clou der Sache: für die Posts soll es Push-Updates über WebSocket geben. Dafür dient im Hintergrund ein Node.JS Server.
Die Frage dabei ist folgende:
- Sollen die Likes mit den Posts mitgeliefert werden?
-- Wenn ja, woher weiss der WS Server, welche Likes das Frontend schon hat? Soll das ausgebene PHP bei jedem Post dem WS Server mitteilen, welche Likes das Frontend schon hat und welche nicht?
-- Wenn nein, werden dann alle Likes über WS nachgeladen? Hätte den Vorteil, dass man sicherstellen kann, dass alle Likes auch wirklich am Frontend ankommen.
- Sollen neue Posts komplett über den WS ans Frontend geschickt werden oder soll der WS Server das Frontend nur darüber benachrichtigen, DASS es einen neuen Post gibt? Dann müsste das Frontend den Post einzeln via Ajax nachladen und dann nochmal die Likes vom WS Server holen?
Man stelle sich einen Nachladeablauf wie folgt vor:
1. User klickt auf einen Link.
2. Container in der Mitte wird geleert.
3. Posts werden angefragt und in den Container geladen.
(4. Likes werden per WS geholt - an der Stelle registriert sich das Frontend auch für Updates für den Post, also alle Likes u.Ä. was dannach noch kommt werden automatisch gepushed.
Ich habe bereits einige Gedankenmodelle durch, wie zum Beispiel:
- Beim rendern der Posts in PHP baut PHP eine kurze WS Verbindung zum node server auf um diesem mitzuteilen, dass der User x sich für Updates zum Post y registriert. Der node Server schickt dann alle folgenden Updates an die ihm bekannte Verbindung (muss natürlich gewährlsitet sein, dass a) beide vom selben User sprechen und b) der User im Freontend bereits eine bestehende WS Verbindung hat - tricky)
- Es werden beim Rendern gar keine Likes ausgegeben, diese werden komplett wia WS nachgeladen.
- Bei einem Push Update wird einfach der komplette Post nochmal geladen und ersetzt
Keine dieser Lösungen erscheint mir sinnvoll. Hat einer von euch eine Idee oder Erfahrungen mit ähnlichen Problematiken?
Viele Grüße!
Bodo06
Ich hab auch mal eine Frage, eine doch recht komplexe. Ich hoffe, dass einer von euch eine Idee hat.
Für verschieden Projekte baue ich grade eine Social Interaction Grundebene - also Messaging, Posts, Kontaktkreise, Profile und co. Ein Hauptelement dessen ist der s.g. Stream - vergleichbar mit der Facebook Home Ansicht, wo alle Posts von Freunden und Abonnierten Usern angezeigt werden. Und um ebenjene Ansicht geht es hierbei auch.
Die Posts werden komplett per Ajax nachgeladen. Das bedeutet, dass über verschiedene Links zu beiden Seiten des Contents die Inhalte in der Mitte nachgeladen werden, was in den meisten Fällen Posts sind. Die Posts haben noch einige Zusatzinformationen, wie zum Beispiel Tags und Likes (also z.B. die Facebook Likes). Nun kommt aber der Clou der Sache: für die Posts soll es Push-Updates über WebSocket geben. Dafür dient im Hintergrund ein Node.JS Server.
Die Frage dabei ist folgende:
- Sollen die Likes mit den Posts mitgeliefert werden?
-- Wenn ja, woher weiss der WS Server, welche Likes das Frontend schon hat? Soll das ausgebene PHP bei jedem Post dem WS Server mitteilen, welche Likes das Frontend schon hat und welche nicht?
-- Wenn nein, werden dann alle Likes über WS nachgeladen? Hätte den Vorteil, dass man sicherstellen kann, dass alle Likes auch wirklich am Frontend ankommen.
- Sollen neue Posts komplett über den WS ans Frontend geschickt werden oder soll der WS Server das Frontend nur darüber benachrichtigen, DASS es einen neuen Post gibt? Dann müsste das Frontend den Post einzeln via Ajax nachladen und dann nochmal die Likes vom WS Server holen?
Man stelle sich einen Nachladeablauf wie folgt vor:
1. User klickt auf einen Link.
2. Container in der Mitte wird geleert.
3. Posts werden angefragt und in den Container geladen.
(4. Likes werden per WS geholt - an der Stelle registriert sich das Frontend auch für Updates für den Post, also alle Likes u.Ä. was dannach noch kommt werden automatisch gepushed.
Ich habe bereits einige Gedankenmodelle durch, wie zum Beispiel:
- Beim rendern der Posts in PHP baut PHP eine kurze WS Verbindung zum node server auf um diesem mitzuteilen, dass der User x sich für Updates zum Post y registriert. Der node Server schickt dann alle folgenden Updates an die ihm bekannte Verbindung (muss natürlich gewährlsitet sein, dass a) beide vom selben User sprechen und b) der User im Freontend bereits eine bestehende WS Verbindung hat - tricky)
- Es werden beim Rendern gar keine Likes ausgegeben, diese werden komplett wia WS nachgeladen.
- Bei einem Push Update wird einfach der komplette Post nochmal geladen und ersetzt
Keine dieser Lösungen erscheint mir sinnvoll. Hat einer von euch eine Idee oder Erfahrungen mit ähnlichen Problematiken?
Viele Grüße!
Bodo06