首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Redis Cookbook聊天食谱

Redis Cookbook聊天食谱
EN

Stack Overflow用户
提问于 2012-10-20 06:33:26
回答 1查看 504关注 0票数 1

我是Node.Js和Redis的新手。我拿到了Redis的食谱,并尝试了聊天客户端和服务器的菜谱。

我想知道是否有人让代码正常工作,或者代码中是否有一些bug。

我看不到从客户端发送的消息在服务器上被调用的位置。

任何帮助都是最好的。

问候你,汤姆

客户端代码:

代码语言:javascript
运行
复制
<?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>

服务器代码:

代码语言:javascript
运行
复制
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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-20 06:56:55

看起来您没有侦听来自socket.io的任何连接/消息事件。试试像这样的东西

代码语言:javascript
运行
复制
socketio.sockets.on('connection', function(socket) {
   console.log("Got connection");
   socket.on('message', function(msg) {
       rc1.publish("chat", msg);
   });
});

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12983356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档