OLD hanya menggunakan referensi
Ketergantungan
menggunakan express, socket.io, node_redis dan yang terakhir adalah kode sampel dari media fire.
Instal node.js+npm(sebagai non root)
Pertama, Anda harus (jika Anda belum melakukannya) menginstal node.js+npm dalam 30 detik (cara yang benar karena Anda harus TIDAK jalankan npm sebagai root ):
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
Instal dependensi
Setelah Anda menginstal node+npm Anda harus menginstal dependensi dengan mengeluarkan:
npm install express
npm install socket.io
npm install hiredis redis # hiredis to use c binding for redis => FAST :)
Unduh contoh
Anda dapat mengunduh sampel lengkap dari mediafire.
Buka zip paket
unzip pbsb.zip # can also do via graphical interface if you prefer.
Apa yang ada di dalam 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>
Mulai server
cd pbsb
node app.js
Mulai peramban
Paling baik jika Anda memulai google chrome (karena dukungan soket web, tetapi tidak perlu). Kunjungi http://localhost:3000
untuk melihat sampel (pada awalnya Anda tidak melihat apa pun selain PubSub
sebagai judul).
Tapi di publish
ke saluran pubsub
Anda akan melihat pesan. Di bawah ini kami menerbitkan "Hello world!"
ke browser.
Dari ./redis-cli
publish pubsub "Hello world!"