REDIS食谱聊天食谱



我是node.js和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>

服务器代码:

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);

看起来您不听任何socket.io的连接/消息事件。尝试

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

您需要在此处取消 rc1,您将需要第二个redis连接

最新更新