Warum brauchen wir Produkte wie Schieber und Buchse.io zum herstellen einer websocket-Verbindung?
Ich ve wurde Lesen über websockets und SaaS wie Schieber und Buchse.io kürzlich, während der Arbeit an meinem Laravel-chat-Praxis-Anwendung. Was ich nicht verstehe ist, warum brauchen wir externe software zum herstellen einer websocket-Verbindung? Kann nicht den server-code wie Laravel direkt die Verbindung mit dem front-end wie Vue.js? Warum muss es haben, um durch zu gehen die Zwischenhändler wie Schieber und Buchse.io? Sorry für die noob-Frage stellen.
- Für eine Liste mit einigen der features, die die Buchse.io gibt Sie, die eine webSocket nicht sehen: Umzug aus der Buchse.io raw websockets?. Viele dieser Buchse.io-Funktionen sind sehr nützlich und eine ist Links zu schreiben, selbst wenn Sie nur ein webSocket (wie auto-reconnect).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es nicht haben zu.
Diejenigen Teile der software nur geschehen, um es trivial, um die Arbeit mit dem Websocket-Protokoll.
Erinnern, Laravel ist ein rechthaberisch Rahmen. Dies bedeutet, dass Sie wählen, und wählen Ihre eigenen Bibliotheken zu abstrahieren, diese Arten von Konzepten für Sie, so dass Sie nicht haben, um sorgen, so viel über, was Los ist unter der Haube.
Grundsätzlich gibt es zwei Komponenten, die Sie benötigen, um in der Lage sein, um die Arbeit mit Websockets:
Den Grund Laravel kommuniziert nicht direkt mit dem front-end mit Websockets ist, weil Laravel selbst ist nicht ein Websocket-server. Zumindest, nicht wirklich. Und während Sie PHP nicht haben, Unterstützung für das Websocket-Protokoll - und noch einige Bibliotheken zu nutzen, die es ein wenig mehr schön - es ist einfach nicht für den Umgang mit Prozessen mit langer Lebensdauer, wie oft andere Sprachen.
Statt, Laravel nutzt die Pub/Sub-Funktionalität, bietet Redis zu hören, dass Ereignisse auftreten, die durch Redis und die Predis-Bibliothek. Der Grund, warum es dies tut, ist, weil Laravel ist besser geeignet als Mitte-Mann für das websocket-server und allen angeschlossenen clients.
In dieser Weise, Laravel kann sowohl die übergabe von Informationen durch den Websocket-server mit Ausstrahlung Von Veranstaltungen, sowie empfangen von Ereignis-Informationen aus dem Websocket-server und bestimmen, ob die Benutzer haben die Möglichkeit bzw. die Berechtigung, Sie zu empfangen.
Wenn Sie nicht möchten, zu verwenden, Pusher, es ist eine Bibliothek, die Ihnen erlauben, Ihren eigenen Websocket-Server, der speziell für Laravel genannt Laravel Echo-Server.
Unter der Haube, diese Bibliothek noch verwendet Socket.io und Redis, um für alle beweglichen Teile, um miteinander zu kommunizieren nahtlos in eine Laravel web-Anwendung. Der Vorteil hier ist, dass Sie nicht brauchen, um über die Anzahl der Nachrichten, die vom server gesendet.
Der Nachteil ist, dass Sie jetzt wissen, wie zu verwalten und zu pflegen, diesen Prozess auf Ihrem server, so dass die Websocket-Server wird wissen, zu drehen, jedes mal, wenn Sie starten Sie Ihren server neu, oder, wenn ein Fehler passiert, etc.
Check-out PM2, um mehr zu erfahren über die Ausführung und Wartung der server-daemons.
Wenn Sie nicht einverstanden mit Laravel die Meinungen, wie man mit Websockets, dann könnte man theoretisch auch jede andere server-side-Sprache zu handhaben, das websocket-Protokoll. Es wird nur mit mehr Kenntnissen der Protokoll selbst; und wenn Laravel benötigt, müssen Sie wissen, wie zu schreiben, die entsprechenden Service-und Provider-Klassen in der Lage sein, es zu handhaben.
Kurze Antwort? Sie müssen nicht, Sie zu benutzen. Knock yourself out schreiben Sie Ihre eigenen server-und client-Seite websocket-Implementierung.
Mehr Antworten.
Warum Laravel? Ich kann all das mit gerade PHP.
Warum verwenden Vue? Ich kann alles tun, was mit vanilla javascript.
Wir verwenden, - Bibliotheken und-frameworks, da Sie abstrahieren die details der Umsetzung und erleichtern es, Produkte herzustellen. Sie behandeln Sonderfälle, die Sie nicht denken oder Dinge Sie nicht einmal wissen, dass Sie nicht wissen, über, weil Sie von tausenden oder Millionen von Entwicklern und all das wissen und die bugs haben Sie festgestellt und behoben werden gebacken in der Umsetzung.
Dies ist eines der Markenzeichen des software-engineering, Wiederverwendung von code. Wiederhole dich nicht und Schreibe keine software, die Sie nicht haben, um. Es ermöglicht Ihnen, sich auf den Aufbau einer Lösung für Ihre speziellen Anforderungen konzentrieren und nicht auf den Aufbau einer Reihe von Infrastruktur -, bevor Sie können sogar Ihre Lösung.
Habe ich noch nie verwendet, Pusher, aber es sieht so aus, ja, es ist ein SaaS-Produkt. Aber Socket.io ist open source.