Javascript 如何在node.js中添加以下代码而不破坏其他代码?

Javascript 如何在node.js中添加以下代码而不破坏其他代码?,javascript,node.js,Javascript,Node.js,因此,我在node.js服务器中有以下代码 var socket = require( 'socket.io' ); var express = require( 'express' ); var https = require( 'https' ); var fs = require('fs'); var app = express(); var privateKey = fs.readFileSync('', 'utf8'); var certificate = fs.readFileS

因此,我在node.js服务器中有以下代码

var socket = require( 'socket.io' );
var express = require( 'express' );
var https = require( 'https' );
var fs = require('fs');

var app = express();

var privateKey = fs.readFileSync('', 'utf8');
var certificate = fs.readFileSync('', 'utf8');
var credentials = {key: privateKey, cert: certificate};

var server = https.createServer(credentials, app );

var io = socket.listen( server);
io.set('transports',['xhr-polling']);
io.sockets.on( 'connection', function( client ) {
    console.log( "New client !" );

    client.on( 'message', function( data ) {
        console.log( 'Message received ' + data.name + ":" + data.message );
        //client.broadcast.emit( 'message', { name: data.name, message: data.message } );
        io.sockets.emit( 'message', data);
    });

    client.on( 'doTrade', function( data ) {
        //console.log( 'Message received ' + data.name + ":" + data.message );
        io.sockets.emit( 'doTrade', data );
    });
});

server.listen( (x) );
我想添加以下内容以显示已连接用户的数量

io.sockets.on("connection", socket => {
  let clientCount = io.engine.clientsCount;

  io.sockets.emit("user count", clientCount);
  socket.on("disconnect", () => {
    io.sockets.emit("user count", clientCount);
  });
});

当直接添加时,由于双重调用“连接”,它会中断其他组件


如何正确地集成此功能?

首先,为
连接添加一个新的事件处理程序
事件非常好。这本身并不会破坏任何东西,因此,如果某个东西正在破坏,这可能与代码本身或您如何将其添加到项目中有更多关系,而不是因为
连接
事件`有第二个事件处理程序。添加此代码时,您会遇到什么确切的错误(逐字)?而且,错误所指的确切代码行是什么。我想知道socket.io是否不再支持
io.engine
,此代码有点傻,因为您在
disconnect
事件上发出的消息总是与它们连接时发出的消息相同,因为您有一个永远不会更改的
clientCount
本地副本。添加代码并重新启动后,npm-debug.log为空,但它肯定打破了另一个密码。另一段代码是用于实时更新图表和订单簿的,在重新启动后不再工作。我不知道您的运行环境是什么,但通常我只是从命令行使用
节点somefile.js启动程序,然后在启动程序的控制台中看到所有日志记录。如果我需要更多的信息,那么我要么添加
console.log()
语句来提供更多信息,要么在调试器中设置一个断点并单步执行部分代码或检查变量,等等。。。