OLDは参照のみを使用します
依存関係
express、socket.io、node_redisを使用し、最後にメディアファイアのサンプルコードを使用します。
node.js + npmを(非ルートとして)インストールします
まず、(まだこれを行っていない場合は)node.js + npmを30秒でインストールする必要があります(しないため、正しい方法です)。 npmを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
依存関係のインストール
node + npmをインストールした後、次を発行して依存関係をインストールする必要があります:
npm install express
npm install socket.io
npm install hiredis redis # hiredis to use c binding for redis => FAST :)
サンプルのダウンロード
mediafireから完全なサンプルをダウンロードできます。
パッケージを解凍
unzip pbsb.zip # can also do via graphical interface if you prefer.
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>
サーバーの起動
cd pbsb
node app.js
ブラウザを起動
google chromeを開始する場合に最適です(WebSocketがサポートされているためですが、必須ではありません)。 http://localhost:3000
にアクセスします サンプルを表示するには(最初はPubSub
以外は何も表示されません タイトルとして)。
しかし、publish
では チャネルpubsub
メッセージが表示されます。以下に、"Hello world!"
を公開します。 ブラウザに。
./redis-cliから
publish pubsub "Hello world!"