出口socket.io时无法读取财产“未定义的套接字(Cannot read property &#

2019-10-22 19:49发布

我想我的模块化应用程序,并想在不同的JS文件不同的事件发射到客户端。 下面的示例代码显示了“onlinestatus”事件将从led.js.被解雇 但是我一直得到消息“类型错误:无法读取属性‘插座’的未定义”每当我尝试发射从led.js.事件 我怀疑,当我“米试图出口从/斌/ WWW的IO的东西可能是错误的。

/斌/ WWW

var server = http.createServer(app);
var io = require('socket.io').listen(server);   

var connectedClientsNum = 0;

io.sockets.on('connection', function(socket) {

  console.log("client connected!"); 

  socket.on('disconnect', function() {
    console.log("Client disconnected...");
    console.log("Total Clients Connected: " + --connectedClientsNum);
  })

});
...
module.exports = server;
module.exports.io = io;

led.js

var io = require('../bin/www').io;
...
function toggleLed(leds, err, callback) {
    /* toggle the led value */
    if (leds[0].value == 0) {
        leds[0].value = 1;
        leds[0].save(function(err) {
            if (err) {
                err("update led error");
            }
            else {
                var person= {"status": "online"};
                io.sockets.emit('onlinestatus', person);

                callback("update led from 0 to 1 success");
            }
        });
    }

    else {
        leds[0].value = 0;
        leds[0].save(function(err) {
            if (err) {
                err("update led error");
            } 
            else {
                var person= {"status": "offline"};
                io.sockets.emit('onlinestatus', person);                
                callback("update led from 1 to 0 success");
            }
        });
    }       
}

Answer 1:

您应该检查文档在socket.io和检查,看看是否有其实还是一个socket.sockets.on()函数仍处于socket.io框架。 我不知道,如果它仍然存在。 如果你必须有它的工作,你可以尝试改变socket.io版本0.9,这将是哪里,我认为这是可行的。



文章来源: Cannot read property 'socket's of undefined when exporting socket.io