2. 가정 : nodejs 설치완료.
자 우선 redis pub/sub 이벤트를 잡아서 클라이언트의 함수 호출 하는 놈을 만들어보자.
myredis.js
var io = require('socket.io');
var app = require('express').createServer();
var redis = require('redis');
var sys = require('util');
io = io.listen(app);
var subscriber = redis.createClient(6379, 'localhost');
var publisher = redis.createClient(6379, 'localhost');
subscriber.on("error", function(err) {
sys.debug(err);
});
publisher.on("error", function(err) {
sys.debug(err);
});
subscriber.setMaxListeners(0);
subscriber.subscribe("chat");
io.sockets.addListener('connection', function(socket){
console.log(socket.id);
subscriber.on("message", function(channel, message) {
console.log(message);
socket.emit('chat', {data:message});
});
});
app.listen(3000);
myclient.js
<html>
<head>
<title><%= title %></title>
<script src="socket.io.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
var socket = io.connect('http://node.mynode.com:3000');
socket.on('chat', function(data){
alert(data.data);
});
/*
(function poll(){
$.ajax(
{
type:'get',
url: "http://node.mynode .com:3000",
success: function(data){
$('#textbox').html(data);
},
complete: poll,
timeout: 30000,
async: true,
cache: false,
});
})();
*/
</script>
</head>
<body>
redis publish 를 해보자.
$ redis-cli
redis 127.0.0.1:6379> publish "chat" "도자사요!'
결과는
이거 하면서 Websocket을 보게 되고... Redis 다시 보게되고....아 ㅅㅂ 이 직종은 너무 엮여있는게 많아.. 거기에 다 공부거리야.. 머리가 터질라그래..