Node.js + codeigniter
Kurzem Lesen auf Node.js und wie es ist eine große webserver und unterstützt die sockel selbst. Ich dachte mit es auf ein Projekt von mir, aber ich war noch nicht in der Lage, herauszufinden, zu interagieren, von CI node.js. Es wurde ein Projekt gemacht, für das es mit Drupal und es scheint gut zu funktionieren, allerdings habe ich noch nicht herausfinden können, wie Sie integrierte it zusammen.
Nur Fragen, ob jemand irgendwelche Erfahrungen mit die Idee.
http://drupal.org/project/nodejs
http://www.youtube.com/watch?v=UV8lbdJfESg
Beispiel:
Benutzer Beiträge einen Kommentar über AJAX
Bemerkung wird in DB speichern
Alle Benutzer in dem thread gesehen bekommt Benachrichtigung
nun TEN Teil, wo nach seinem vorgelegt, der Kommentar und der Meldung, wie sieht der msg geschickt bekommt node.js
Der Grund warum ich Frage ist, weil ich möchte, um Echtzeit-Benachrichtigungen für meine CI-Anwendung, Drupal ist auch ein PHP CMS-so Frage ich mich, wie Sie es getan haben, und wenn möglich mit Ci, so kann ich es nutzen.
Ihre Optionen sind message-passing über eine Datenbank wie redis, message-passing über ein TCP-socket oder mit Node/CI Umfrage der Datenbank für neue Daten.
InformationsquelleAutor DregondRahl | 2011-04-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
node.js ist eine non-blocking IO-Bibliothek in der Lage als ein Web-Server.
Code Igniter ist ein PHP-framework.
Wollen Sie laufen ein node.js Web-Server neben Ihrem PHP-Web-Server und haben Sie miteinander reden?
Würd ich dir empfehlen eine oder das andere. Wieder schreiben Sie Ihre gesamte website in express und jetzt.
Wenn Sie müssen miteinander sprechen, können Sie einfach öffnen Sie einen TCP-socket in-Knoten ist mit
net
.Dann verwenden Sie einfach
fsockopen
in PHP eine Verbindung zu Knoten über einen TCP-socket.Edit:
Den live-Kommentaren ist völlig unabhängig von CI. Sie müssen nur einige sockel.io javascript auf Sie CI-server-pages. Deine Seiten sprechen node.js über eine seperate Steckdose und berühren Sie nicht die PHP-back-end. Ihre Steckdose.io wird die push-Daten, um alle Ihre Kunden und die Seiten machen wird, neue Nachrichten mit javascript.
Alle codeigniter Bedürfnisse zu tun ist, legen
Weiter Bearbeiten:
So müssen Sie Ihre Benutzer-log-in über Ihren websocket. Ich bin mir nicht sicher, wie Sie sich nun einloggen aber das senden der gleichen Benutzername/Passwort-hash zu node.js sollte nicht allzu schwer sein. Erhalten node.js zum öffnen einer Verbindung zu Ihrer Datenbank, wo Sie speichern die Benutzer. Speichern Sie dann die Kanäle /threads /chat rooms /Nachrichten eines bestimmten Benutzers ist "subscriped" in einer Datenbank.
Dann, wenn Knoten eine Nachricht empfängt, die von einem "Kanal", es fragt nur die Datenbank, welche Benutzer zu drängen, dass die Nachricht auf, und dann schiebt er es.
Antwortete ich ein ähnliches Frage schriftlich über einen chat-server mithilfe von Knoten-und das video-tutorial von jetzt hat ein gutes Beispiel. Sie sollten in der Lage sein zu drehen "mehrere Zimmer chatten" in "mehrere Threads zu kommentieren", ziemlich leicht.
Weiter Weiter Bearbeiten
Nicht nach der URL
comment/add/
wenn Sie auf hinzufügen klicken. Nicht ajax verwenden. Verwenden Sie stattdessen-Buchse.io.So etwas wie:
So einfach, sendet der client einen "Kommentar hinzufügen" angezeigt, wenn Sie auf hinzufügen klicken. Der server überwacht die add-Nachricht und sendet die Nachricht an alle anderen Kunden. Diese Kunden sind bereits empfangsbereit für die neue Nachricht, und neue fügt einen Kommentar.
sehen Sie auf Bearbeiten. Rede nicht mit PHP. Starten Sie Ihre Kommentare über ein separates node.js based service.
die Idee könnte funktionieren, aber manche Nachrichten sind wie private Nachrichten zu, zum Beispiel, wenn ein Benutzer abonniert einen post und bekommt einen, die post wird aktualisiert, dass Benutzer benachrichtigt werden sollen. Zusammen mit dem, was über die Sicherheit der Verwendung node.js für die Datenbank einfügt? sorry für die dummen Fragen, ich bin anständig mit PHP aber ausprobieren node.js verlassen hat mich mit einer Menge Fragen ein, wie könnte es mit PHP kommunizieren leicht.
Ihr macht es WEIT zu hart. Entweder reden Sie nicht um PHP oder nicht sprechen node.js. Mit PHP sprechen node.js langsamer ist dann mit PHP die Daten zurück, die sich. node.js ist nicht erforderlich als ein mittlerer Mensch, wenn Ihr geht zu POST zu PHP.
wieder-socket-io nicht mit nur websockets. Es wird auf eine flash-bridge, comet, long polling oder einfach ajax, wenn der Benutzer nicht über web-sockets. Es hat eine Breite Palette von fallbacks, wenn WebSockets sind nicht verfügbar. Der einzige Unterschied ist, dass es verwendet eine WebSocket-wie-API und hat alle feature-Erkennung und Unterstützung für alle browser. Es ist zukunftssicher, da in ein paar Jahren alle anderen Browser wird die Verwendung von web-sockets und Sie nicht haben, um Ihre upgrade-code.
InformationsquelleAutor Raynos
Ich denke, in einem Allgemeinen Fall der Verwendung von node.js mit CodeIgniter, es wäre keine direkte Kommunikation zwischen den beiden.
Im Beispiel oben beschrieben, dies konnte erreicht werden mit einer Technik nennen "long polling" mit node.js . (http://blog.nemikor.com/2010/05/21/long-polling-in-nodejs/)
Wesentlichen, Ihre client-Seite AJAX machen würde, eine Anfrage an Ihre node.js server. Diese Anforderung an die node.js server würde ein Prozess gestartet werden, prüft die DB für die neuen Kommentare, die jede Sekunde (oder 5 Sekunden, etc). Wenn es findet einen neuen Kommentar, es würde zurückgeben, da die Antwort auf der client-Seite in JS AJAX-Aufrufs, und Ihre JS umgehen würden von dort.
Dies ist ein Ansatz, in dem node.js und CodeIgniter kombiniert werden könnten.
HINWEIS: Node.js ist sehr gut für long-polling kann man da pflegen viele Gleichzeitigkeit der Anforderungen von einer node.js server, aufgrund der non-blocking, Ereignis-Schleife-basierte design der node.js
Ja, guter Punkt. Die Kommunikation zwischen Node.js und CodeIgniter würde in der Regel nur über die DB. Mit Ihnen direkt kommunizieren, nur irgendwie klingt böse.
es gibt keinen Grund, Sie nicht über einen TCP-socket öffnen. Dies ist eine design-alternative zu haben, sowohl im Gespräch mit der Datenbank. Es gibt keinen Grund, Knoten kann nicht Abfrage, CI-Daten über TCP.
Auch ich kann nicht glauben, wie Durpal hat Ihre plugin zur Kommunikation mit node.js richtig, ohne dass es chaotisch. Die Datenbank-Methode ist eine tolle Idee, die 5 Sekunden delay-würde es nicht ganz als real-time, aber kann ich verstehen die Argumentation. Was ist, wenn wir Hinzugefügt-Buchse.IO, die Mischung und die Verwendung von Web-Sockets? Vielen Dank für die Antworten.
warten Sie, was? Ew! Nicht Umfrage die Datenbank. Verwenden pubsub wie redis oder Sie richtige message passing over TCP. Sie können eine Datenbank-Verbindung auf redis warten für neue Daten, da redis schiebt.
InformationsquelleAutor JohnWright
Den Weg Drupal hat es getan, ist die Verwendung der Node.js plugin-Buchse.io.
Wenn ein Kommentar gepostet wird, drupal, teilt die Buchse mit dem Kommentar, details, node.js benachrichtigt dann den anderen "Kunden".
InformationsquelleAutor ShadowMorph
Habe ich gerade gefunden dieses Paket:
https://www.npmjs.com/package/nodeignitermvc
Also von dem, was ich understad, es ist ein Paket, das läuft unter NODE.JS wenn Sie noch nicht gestartet sind Sie Projekt und wollen, dass Sie beide, ohne sich in zu viel Mühe das Spiel mit sockets auf dem server - das sieht ideal.
vielleicht hilft dies ja 🙂
InformationsquelleAutor Rick Sanchez