Mit php twitter klon?
Aber ich möchte ungerne einen ajax request alle 5 ms senden sondern sowas wie socket io. Leider kann ich nicht wirklicj node js , klar ich kann javascript / react aber da ich immer nur ein standart web Hosting hatte und nicht mit vserver usw beschäftigt hab gabs keine backend alternative zu php und sql
Websickets mit php soll angeblich sehr komplex sein deswegen frage ich ob das stimmt oder ob es alternativen gibt.
ich will jetzt kein ernstgemeintes twitter programmieren sondern nur dazu lernen und ein kleines portfolio aufbauen.
2 Antworten
Der Apache HTTP Server, der von vielen PHP-Webhostern genutzt wird, wurde nicht dafür konzipiert, mehrere Verbindungen persistent und parallel aufrechtzuerhalten. Stattdessen ist er darauf ausgelegt, Requests schnellstmöglich abzuarbeiten und somit die Verbindung zügig wieder zu beenden.
Andere Lösungen wie AMPHP, Open Swoole oder Ratchet, die ein ereignisgesteuertes System implementieren, sind daher an der Stelle besser geeignet.
Leider kann ich nicht wirklicj node js , klar ich kann javascript / react (...)
Demzufolge hast du sicherlich zumindest am Rand schon mit NodeJS zutun gehabt und darauf (sowie den bereits bestehenden JavaScript-Kenntnissen) würde ich aufbauen. Es ist ja an sich nur eine andere Plattform (als die Sandbox des Browsers), in der JavaScript-Anwendungen ausgeführt werden.
Für eine Webanwendung, die über WebSockets kommunizieren soll, wäre NodeJS zudem sehr gut geeignet. Sein zugrundeliegendes System ist in der Lage, mehrere gleichzeitige Verbindungen abzuarbeiten (günstig bspw. für RT-Anwendungen wie Chats). Es ist gut skalierbar.
Für die Implementation könntest du dich mit Express beschäftigen und für die WebSocket-Kommunikation die express-ws-Bibliothek verwenden.
Das geht, doch PHP Sockets sind meiner Meinung nach widerlich. Ich habe damit bereits gearbeitet und sie sind ein reiner Nachteil gegenüber anderen Sockets in anderen Sprachen. Sie lassen sich nur richtig schlecht benutzen. Ich persönlich würde für ein solches Vorhaben auf Blazor (Server) setzen. Die Sockets muss man dann nicht mehr entwickeln, da sie bereits da sind. Man kann sich also auf Frontend und Backend konzentrieren. Das ist schon mal ein Plus. Fakt ist aber, Blazor ist C#. Also wieder kein PHP. Aber das ist so, wie ich es machen würde. Da hinzu kommt: Nicht jeder kann Sockets. In manchen Netzwerken sind die gesperrt. Bei Blazor würde hier als alternative Long Polling genutzt werden. Die technologie dahinter nennt sich SingalR. Was ich allgemein sagen will: Es gibt viele einfache Lösungen, doch PHP gehört nicht dazu. Ich rate dir davon ab, es mit PHP zu machen, doch wenn du es unbedingt willst, viel Glück.