【问题标题】:Redis Cookbook Chat RecipeRedis 食谱聊天食谱
【发布时间】:2012-10-19 22:33:25
【问题描述】:

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

【问题讨论】:

  • 这是一个非常笼统的问题。愿意发布更多关于您看到的具体问题的信息吗?

标签: node.js redis chat publish-subscribe cookbook


【解决方案1】:

您似乎没有从 socket.io 监听任何连接/消息事件。尝试类似

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

您需要在上面取消注释您的 rc1,您将需要第二个 redis 连接

【讨论】:

  • 我看到了这篇文章,但没有看到解决方案。我有点卡住了
  • 好吧,看起来你没有在 socket.io 前端监听任何事件,我编辑了我的答案以反映一个建议
猜你喜欢
  • 2014-11-06
  • 1970-01-01
  • 2019-01-29
  • 2021-11-01
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
相关资源
最近更新 更多