Nasıl/nodejs ile ABONE redis YAYINLAMAK veri değerleri değiştirmek için müşterilerine bildirmek için kullanılır?
Olay güdümlü/NodeJS ve Redis ile başvuru abone yayınlamak yazıyorum. Veri Redis değişim değerleri web müşterilerine bildirmek için nasıl bir örnek istiyorum.
CEVAP
ESKİ sadece bir referans kullanın
Bağımlılıklar
kullanır, *, *21expresssocket.io ve son ama en az değil sample code medya yangın.
Node.js etmesinin önünü olmayan(root) yükleyin
Öncelikle Eğer Henüz bunu yapmış değil () node.js npm in 30 seconds (gerekir çünkü doğru şekilde yükleyinDEĞİLçalışma etmesinin önünükök):
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
Bağımlılıkları yükleyin
Yüklü düğüm etmesinin önünü sonra yayımlayarak bağımlılıkları yüklemeniz gerekir:
npm install express
npm install socket.io
npm install hiredis redis # hiredis to use c binding for redis => FAST :)
İndir örneği
mediafire tam örnek indirebilirsiniz.
Sıkıştırılmış paket
unzip pbsb.zip # can also do via graphical interface if you prefer.
Zip içinde ne var
./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 başlatın
cd pbsb
node app.js
Tarayıcı başlatın
Eğer google chrome başlarsan iyi(websockets nedeniyle destek, ama gerekli değil). http://localhost:3000
örnek(başlangıçta bir şey ama başlık PubSub
görmüyorum) görmek için ziyaret edin.
Ama publish
Kanal pubsub
bir ileti görmelisiniz. Biz tarayıcı "Hello world!"
yayınlamak aşağıda.
Dan ./redis-cli
publish pubsub "Hello world!"
Temel veri yapıları Redis ne için kull...
Nasıl MS SQL bir sütunun veri türünü d...
Nasıl Java sunucu uygulaması bir filtr...
Nasıl kimlik sütun değerleri değiştirm...
PutExtra (nasıl kullanılır) ve getExtr...