Node.JS: gewusst Wie: erstellen einer HTTP-Chat-Server?
Net mit dem Stream-Objekt mit TCP funktioniert Super (wie presetend in der node.js Einführung video), aber wie soll ich das in HTTP?
Gibt es eine Möglichkeit zum Zugriff auf sockets/Kunden innerhalb einer http.createServer()
? Oder was ist die Methode, es zu tun? Ich habe versucht, um herauszufinden, die Lösung von der offiziellen Knoten-chat-demos souce code, aber ich don' wirklich zu verstehen.
Verstehe ich die client-Seite in js, aber was passiert, nachdem ich(als client) sendet eine Nachricht Trog AJAX, der server-side js? Wie kann ich senden, um die anderen Kunden auf dem server zu?
Bitte beachten Sie, dass ich wan ' T zu lernen, die Logik des Prozesses, so will ich nicht zu verwenden Buchse.io oder andere frameworks, Bibliotheken, Module.
Vielen Dank für jede Hilfe!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Idealerweise verwenden Sie einfach
WebSockets
aber die alternative ist ajax long polling.Können Sie verwenden eine Technik, bekannt als long polling zu tun im chat. Dies bedeutet, dass Sie eine (ajax -) request zum server und der server hält diese Anforderung, bis es einige Daten, Links zu senden.
Damit die clients endet regelmäßig abrufen des Servers, wenn der server keine neuen Meldungen, es hält nur halt Ihre Anfrage. Wenn es eine Nachricht, die er sendet es zurück an den client und der client den server abfragt, wieder.
[[Pseudo-Code]]
//Client.js
//server.js
Einen besseren push-Technologie wäre Server-side-events. Finden Sie eine Beispiel hier. Dies erfordert browser-Unterstützung, obwohl (Chrome und opera denke ich).
Einen Weg, es zu tun, beinhaltet Kunden "abonnieren", um einen Kanal, der als Verteiler für Nachrichten. Einmal abonniert, ein client erhält dann eine Kopie jeder Nachricht an den Kanal gesendet.
Viele Knoten chat-Dienste verlassen sich auf redis' pubsub-feature, um diese zu bewältigen Verteilung von Nachrichten aus einer beliebigen Anzahl von clients. Wenn Sie wollte, "roll your own", zu verstehen, wie redis, die dieses problem löst, wäre ein guter Anfang.
node.js
:), aber als PHP-Programmierer das sieht interessant ausWenn Sie wollen, um zu wissen, die grundlegenden Prinzipien der long-polling-dann schauen Sie bei dieser Artikel. Ich fasste es bestimmte Teile meiner eigenen Umfrage-server, wie ich das realisiert wurde, und der Artikel enthält auch links zu anderen Ressourcen. Es sollte Ihnen mindestens das größere Bild, wie long-polling funktioniert.
Wenn Sie möchten, lernen Sie die Logik, um einige Codierung Spaß mit node.js und nicht die Nutzung bestehender Lösungen, dann würde ich empfehlen, gehen Schritt für Schritt von den einfachsten und grundlegenden Implementierung bis hin zu komplexeren Sachen. Versuchen Sie nicht, bauen Sie die ganze Sache von der ersten Aufnahme, weil es die sicherste Art und Weise, wie zu scheitern.