最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

无法使用nodejs从socket.io

IT培训 admin 1浏览 0评论

无法使用nodejs从socket.io

希望您一切都好,

由于我正在创建多人游戏,所以我需要从套接字存储所有用户详细信息,一段时间后,我需要从“用户”列表中分组。

因此,我尝试实现.io-redis库并尝试获取所有已连接的用户,但是它无法正常工作,我已经根据此示例Example to use socket.io-redis开发了该程序,但是它对我而言不起作用,并且我的Redis服务器运行良好。] >

感谢

示例:

index.js

var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
var your_namespace_socket = io.of('/');

app.get('/', function(req, res) {
    res.sendfile('index.html');
});
your_namespace_socket.on('connection', function(socket) {

    console.log(socket.id);
    socket.on('join', function(room) {

        socket.join(room);
        console.log(room);

        //log other socket.io-id's in the room
        your_namespace_socket.adapter.clients([room], (err, clients) => {
            console.log(clients);
        });
    });
});
server.listen(3000, function() {
    console.log('listening on *:3000');
});

index.html的

<html>

<head>
    <title>Hello world</title>
</head>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io('/');
socket.emit('join', 'testingroom');
</script>

<body></body>

</html>

输出

用户已加入一个房间中的会话,无法从redis提取数据,如您在屏幕快照中所示

Output of Above Code

[希望您做的很好,因为我正在创建多人游戏,所以我需要从套接字存储所有用户详细信息,一段时间后,我需要从“用户”列表中进行分组。所以我尝试实现...

回答如下:

我测试了您的代码,并且对我有用,这可能是redis的错误,您在回调中是否有任何错误:

无法使用nodejs从socket.io

希望您一切都好,

由于我正在创建多人游戏,所以我需要从套接字存储所有用户详细信息,一段时间后,我需要从“用户”列表中分组。

因此,我尝试实现.io-redis库并尝试获取所有已连接的用户,但是它无法正常工作,我已经根据此示例Example to use socket.io-redis开发了该程序,但是它对我而言不起作用,并且我的Redis服务器运行良好。] >

感谢

示例:

index.js

var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
var your_namespace_socket = io.of('/');

app.get('/', function(req, res) {
    res.sendfile('index.html');
});
your_namespace_socket.on('connection', function(socket) {

    console.log(socket.id);
    socket.on('join', function(room) {

        socket.join(room);
        console.log(room);

        //log other socket.io-id's in the room
        your_namespace_socket.adapter.clients([room], (err, clients) => {
            console.log(clients);
        });
    });
});
server.listen(3000, function() {
    console.log('listening on *:3000');
});

index.html的

<html>

<head>
    <title>Hello world</title>
</head>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io('/');
socket.emit('join', 'testingroom');
</script>

<body></body>

</html>

输出

用户已加入一个房间中的会话,无法从redis提取数据,如您在屏幕快照中所示

Output of Above Code

[希望您做的很好,因为我正在创建多人游戏,所以我需要从套接字存储所有用户详细信息,一段时间后,我需要从“用户”列表中进行分组。所以我尝试实现...

回答如下:

我测试了您的代码,并且对我有用,这可能是redis的错误,您在回调中是否有任何错误:

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论