栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

当数据值更改时,如何将redis PUBLISH / SUBSCRIBE与nodejs一起使用来通知客户端?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

当数据值更改时,如何将redis PUBLISH / SUBSCRIBE与nodejs一起使用来通知客户端?

OLD仅使用参考

依存关系

使用express,socket.io,node_redis,最后但并非最不重要的是使用media
fire中的示例代码。

安装node.js + npm(非root用户)

首先,你应该(如果你还没有这样做还)安装的node.js +
NPM在30秒
(以正确的方式,因为你应该
运行NPM作为 ):

echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc. ~/.bashrcmkdir ~/localmkdir ~/node-latest-installcd ~/node-latest-installcurl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1./configure --prefix=~/localmake install # ok, fine, this step probably takes more than 30 seconds...curl http://npmjs.org/install.sh | sh

安装依赖

安装node + npm后,应通过以下命令安装依赖项:

npm install expressnpm install socket.ionpm install hiredis redis # hiredis to use c binding for redis => FAST :)

下载样本

您可以从mediafire下载完整样本。

解压缩包

unzip pbsb.zip # can also do via graphical interface if you prefer.

拉链里面有什么

./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}); 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>

启动服务器

cd pbsb    node app.js

启动浏览器

最好是启动谷歌浏览器(因为有websockets支持,但不是必需的)。造访

http://localhost:3000
以查看示例(开始时您除了
PubSub
标题以外什么都看不到)。

但是在

publish
频道上
pubsub
您应该会看到一条消息。下面我们发布
"Hello world!"
到浏览器。

从./redis-cli

publish pubsub "Hello world!"


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/383856.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号