Javascript Socket.io和Redis发布/订阅不工作
大家好,我想知道我的代码中的错误是什么,我的代码是关于socket.io和redis pub/sub的。这是我第一次尝试,希望大家能帮助我 这是我的index.htmlJavascript Socket.io和Redis发布/订阅不工作,javascript,node.js,redis,socket.io,publish-subscribe,Javascript,Node.js,Redis,Socket.io,Publish Subscribe,大家好,我想知道我的代码中的错误是什么,我的代码是关于socket.io和redis pub/sub的。这是我第一次尝试,希望大家能帮助我 这是我的index.html <!doctype html> <html> <script src="/socket.io/socket.io.js"></script> <script> var socket = new io.Socket();
<!doctype html>
<html>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = new io.Socket();
socket.connect();
socket.on('connection', function (socket) {
console.log('Connected');
});
socket.on('disconnect', function (socket) {
console.log('Disconnected');
});
</script>
<center>
<h1>Test Page</h1>
</center>
</html>
<!doctype html>
<html>
<script src="http://localhost:1234/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:1234/');
socket.on('connection', function (socket) {
console.log('Connected');
});
socket.on('disconnect', function (socket) {
console.log('Disconnected');
});
</script>
<center>
<h1>Test Page</h1>
</center>
</html>
我希望你能帮我修复这个代码。提前感谢各位。我没有看到您将redis设置为socket.io服务器中的存储。我举了一些例子供您参考:
// start up express server along with socket.io
var express = require('express');
var server = express();
var socket = require('socket.io');
var io = socket.listen(server);
// socket.io
io.set('store', new socket.RedisStore);
// set-up connections...
io.sockets.on('connection', function(socket) {
io.emit('an event sent to all connected clients');
socket.on('some-event', function(rooms) {
...
});
});
您可以阅读以下文档链接:
我可以在您的代码中看到许多错误:
- 在index.html中,您应该连接到
,因为它是在服务器代码中定义的http://localhost:1234/
未在app.js中使用var客户端
从不订阅某些内容。你需要订阅一个频道sub
- 订阅模式下的连接无法向redis发送命令:只有修改订阅集的命令才有效
永远不会发布消息:您必须调用publishsub.incr
- 不要调用
或pub.end()
,因为连接将关闭sub.end()
- 不要将处理程序添加到连接事件:内存泄漏下的事件
消息
<!doctype html>
<html>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = new io.Socket();
socket.connect();
socket.on('connection', function (socket) {
console.log('Connected');
});
socket.on('disconnect', function (socket) {
console.log('Disconnected');
});
</script>
<center>
<h1>Test Page</h1>
</center>
</html>
<!doctype html>
<html>
<script src="http://localhost:1234/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:1234/');
socket.on('connection', function (socket) {
console.log('Connected');
});
socket.on('disconnect', function (socket) {
console.log('Disconnected');
});
</script>
<center>
<h1>Test Page</h1>
</center>
</html>
我认为问题不在于如何配置存储