2017-08-09 8 views
-3

Und warum werden sie zusammen verwendet?Was ist socket.io und Redis?

Ich bin neu bei Node.js und seinen NPM-Paketen, und ich habe versucht, herauszufinden, wofür sie gedacht sind und warum sie zusammen verwendet werden. Ich habe versucht, ihre Dokumentation zu lesen, aber ich verstehe es immer noch nicht.

Antwort

3

socket.io ist ein Kommunikationspaket, das es einem Client und Server ermöglicht, eine lange laufende Verbindung zu haben, bei der beide die anderen Nachrichten jederzeit senden können. Es gibt eine Vielzahl von Gründen für die Verwendung einer socket.io-Verbindung anstelle von HTTP-Anforderungen. Die wichtigste ist jedoch, dass der Server bei einer durchgehenden Verbindung zwischen Client und Server jederzeit Daten an den Client "pushen" kann ohne darauf zu warten, dass der Kunde es anfordert. Dies ist sehr nützlich, um sofort Benachrichtigungen über etwas zu erhalten, das auf dem Server passiert ist.

Redis ist eine schnelle Datenbank, die Daten normalerweise im Speicher und nicht auf der Festplatte speichert. Daher wird sie normalerweise für temporäre Daten verwendet, die nicht permanent gespeichert werden müssen.

Es gibt einen Adapter für socket.io, der redis verwendet, wenn Sie socket.io in einer Cluster- oder Multi-Server-Umgebung verwenden möchten. Wenn Sie dann Daten über seine socket.io-Verbindung an "Bob" senden möchten, ist es der socket.io-Adapter, der die redis-Datenbank verwendet, die darüber informiert, mit welchem ​​Server "Bob" verbunden ist und wie Daten an ihn gesendet werden .

Redis hat viele andere Anwendungen neben nur mit socket.io verwendet werden. Was ich gesehen habe, ist eine Hauptverwendung von redis, wenn Sie mehrere Serverprozesse haben (entweder auf demselben Host oder auf verschiedenen Hosts), die alle einen schnellen Zugriff auf irgendeine Art von "Status" -Information wünschen. Im obigen Fall von socket.io ist dieser Status "Welcher Server ist Bob gerade verbunden?". In anderen Fällen kann es sich um ein Clientsitzungsobjekt oder um andere Statusinformationen wie diesen oder einen anderen Status handeln, auf den alle Server zugreifen möchten.

+0

Das klärt die Dinge auf. Danke! Ich nehme deine Antwort an. –

0

Socket.IO ermöglicht die bidirektionale ereignisbasierte Echtzeitkommunikation. Es funktioniert auf jeder Plattform, jedem Browser oder Gerät und konzentriert sich gleichermaßen auf Zuverlässigkeit und Geschwindigkeit.

Schauen Sie sich die Webseite https://socket.io

Redis ist eine In-Memory-Datenstruktur zu speichern, verwendet als Datenbank, Cache und Message-Broker https://redis.io

Warum sie zusammen verwendet werden, ist wahrscheinlich eine Art von Realtime zu erstellen Anwendung

NPM ist im Grunde genommen ein Paketmanager für Node, mit dem Sie Knoten schnell und einfach erweitern können, indem Sie vorentwickelte Module hinzufügen, um eine Anwendung zu entwickeln.

Ich hoffe, das

0

Socket.IO hilft ist eine JavaScript-Bibliothek für Echtzeit-Web-Anwendungen. Es ermöglicht eine bidirektionale Echtzeitkommunikation zwischen Webclients und Servern. Es besteht aus zwei Teilen: einer clientseitigen Bibliothek, die im Browser ausgeführt wird, und einer serverseitigen Bibliothek für node.js. Beide Komponenten haben nahezu identische APIs.

Redis ist ein Open-Source- (BSD lizenziert), In-Memory-Datenstrukturspeicher, der als Datenbank, Cache und Nachrichtenbroker verwendet wird. Es unterstützt Datenstrukturen wie Strings, Hashes, Listen, Sets, sortierte Sets mit Bereichsabfragen, Bitmaps, Hyperloglogs und Geospatial-Indizes mit Radiusabfragen.

Hoffe das hilft, hier ist der Link, wo ich die Informationen https://scalegrid.io/blog/using-redis-with-node-js-and-socket-io/ erhalten.Es gibt auch ein einfaches Chat-Programm, das Sie erstellen können, wenn Sie praktische Erfahrungen mit diesen Technologien sammeln möchten.

+0

Danke, ich werde mit ihnen eine Chat-Anwendung erstellen, um praktische Erfahrungen zu sammeln. –

+0

Genießen Sie es ist eine der besten Möglichkeiten zu lernen! – Chase

Verwandte Themen