2012-10-19 3 views
1

나는 Node.Js와 Redis의 새로운 스타터입니다. Redis 요리 책이 있고 채팅 클라이언트를 사용해 보았습니다 & 서버 제조법.Redis 요리 책 채팅 레시피

누군가 코드가 작동하는지 또는 코드에 버그가 있는지 궁금합니다.

클라이언트에서 보낸 메시지가 서버에서 호출되는 위치를 알 수 없습니다.

도움이 될 것입니다.

감사합니다, 톰

클라이언트 코드 :

<?php 

?> 

<html> 
<head> 
<title></title> 


<script src="http://192.168.0.118:8000/socket.io/socket.io.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 

<script> 


var socket = io.connect('192.168.0.118',{port:8000}); 

socket.on('message', function(data){ 
alert(data); 
//var li = new Element('li').insert(data); 
//$('messages').insert({top: li}); 
}); 


</script> 

</head> 

<body> 

<ul id="messages"> 
<!-- chat messages go here --> 
</ul> 

<form id="chatform" action=""> 
<input id="chattext" type="text" value="" /> 
<input type="submit" value="Send" /> 
</form> 
<script> 

$('#chatform').submit(function() { 
socket.emit('message', 'test'); //$('chattext').val()); 
$('chattext').val(""); // cleanup the field 
return false; 
}); 

</script> 


</body> 
</html> 

서버 코드 : 당신이 socket.io에서 어떤 연결/메시지 이벤트를 수신하지 않는 것처럼

var http = require('http'); 
io = require('socket.io'); 

redis = require('redis'); 
rc = redis.createClient(); 
//rc1 = redis.createClient(); 

rc.on("connect",function(){ 
rc.subscribe("chat"); 
console.log("In Chat Stream"); 
}); 

rc.on("message",function (channel,message){ 

console.log("Sending hope: " + message); 
//rc1.publish("chat","hope"); 
socketio.sockets.emit('message',message); 
}); 

server = http.createServer(function(req,res){ 

res.writeHead(200,{'content-type':'text/html'}); 
res.end('<h1>hello world</h1>'); 

}); 

server.listen(8000); 

var socketio = io.listen(server); 
+0

이것은 매우 일반적인 질문입니다. 이 문제가 발생하는 특정 문제에 대해 더 자세히 게시 하시겠습니까? – marko

답변

1

같습니다 .. 시도해보십시오.

socketio.sockets.on('connection', function(socket) { 
    console.log("Got connection"); 
    socket.on('message', function(msg) { 
     rc1.publish("chat", msg); 
    }); 
}); 

거기에서 rc1의 주석 처리를 제거해야합니다. 두 번째 다시 연결해야합니다.

+0

이 게시물을 보았지만 해결책을 찾지 못했습니다. 좀 붙어 있니? –

+0

좋아, socket.io 앞에서 어떤 이벤트라도 듣고있는 것 같지 않아, 내 대답을 편집하여 제안을 반영했다. – hexist

+0

고맙습니다. –