ALT verwendet nur eine Referenz
Abhängigkeiten
verwendet express, socket.io, node_redis und nicht zuletzt den Beispielcode von media fire.
Installieren Sie node.js+npm (als Nicht-Root)
Zuerst sollten Sie (falls Sie dies noch nicht getan haben) node.js+npm in 30 Sekunden installieren (der richtige Weg, weil Sie NICHT sollten Führen Sie npm als root aus ):
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install # ok, fine, this step probably takes more than 30 seconds...
curl http://npmjs.org/install.sh | sh
Installieren Sie Abhängigkeiten
Nachdem Sie node+npm installiert haben, sollten Sie Abhängigkeiten installieren, indem Sie Folgendes ausgeben:
npm install express
npm install socket.io
npm install hiredis redis # hiredis to use c binding for redis => FAST :)
Beispiel herunterladen
Sie können das vollständige Beispiel von Mediafire herunterladen.
Paket entpacken
unzip pbsb.zip # can also do via graphical interface if you prefer.
Was ist drin zip
./app.js
const PORT = 3000;
const HOST = 'localhost';
var express = require('express');
var app = module.exports = express.createServer();
app.use(express.staticProvider(__dirname + '/public'));
const redis = require('redis');
const client = redis.createClient();
const io = require('socket.io');
if (!module.parent) {
app.listen(PORT, HOST);
console.log("Express server listening on port %d", app.address().port)
const socket = io.listen(app);
socket.on('connection', function(client) {
const subscribe = redis.createClient();
subscribe.subscribe('pubsub'); // listen to messages from channel pubsub
subscribe.on("message", function(channel, message) {
client.send(message);
});
client.on('message', function(msg) {
});
client.on('disconnect', function() {
subscribe.quit();
});
});
}
./public/index.html
<html>
<head>
<title>PubSub</title>
<script src="/socket.io/socket.io.js"></script>
<script src="/javascripts/jquery-1.4.3.min.js"></script>
</head>
<body>
<div id="content"></div>
<script>
$(document).ready(function() {
var socket = new io.Socket('localhost', {port: 3000, rememberTransport: false/*, transports: ['xhr-polling']*/});
var content = $('#content');
socket.on('connect', function() {
});
socket.on('message', function(message){
content.prepend(message + '<br />');
}) ;
socket.on('disconnect', function() {
console.log('disconnected');
content.html("<b>Disconnected!</b>");
});
socket.connect();
});
</script>
</body>
</html>
Server starten
cd pbsb
node app.js
Browser starten
Am besten, wenn Sie Google Chrome starten (wegen Websockets-Unterstützung, aber nicht notwendig). Besuchen Sie http://localhost:3000
um Beispiel zu sehen (am Anfang sehen Sie nichts als PubSub
als Titel).
Sondern auf publish
um pubsub
zu kanalisieren Sie sollten eine Nachricht sehen. Nachfolgend veröffentlichen wir "Hello world!"
zum Browser.
Von ./redis-cli
publish pubsub "Hello world!"