Javascript 节点net.createServer(),将数据发送回(';数据';)回调的客户端

Javascript 节点net.createServer(),将数据发送回(';数据';)回调的客户端,javascript,server,Javascript,Server,因此,我有一个电子版的小服务器,使用net和这个类: var net = require('net') class Server { constructor(port) { this.Port = port var HOST = '127.0.0.1' // todo: get ip from host name this.Server = net.createServer(); this.Server.list

因此,我有一个电子版的小服务器,使用net和这个类:

var net = require('net')

class Server {

    constructor(port) {

        this.Port = port

        var HOST = '127.0.0.1'  // todo: get ip from host name

        this.Server = net.createServer();
        this.Server.listen(port, HOST);

        this.Server.on('connection',  (sock) => {

            console.log('CONNECTED: ' + sock.remoteAddress + ':' + sock.remotePort);

            sock.on('data', function (data) {
                console.log( `client sent data ${data}`)
                sock.write( `Server sends back ${data} to client`)
            });

            sock.on('close', function (data) {
                let index = sockets.findIndex(function (o) {
                    return o.remoteAddress === sock.remoteAddress && o.remotePort === sock.remotePort;
                })
                console.log('CLOSED: ' + sock.remoteAddress + ' ' + sock.remotePort);
            });
        });

    } // constructor

}
我这样称呼它:

var server = new Server( 3000 )
使用telnet localhost 3000测试它。这一切都很好用,但它有点像是一个问答游戏,只有当客户端收到io中的数据(“数据”)时才会向客户端发送响应。是否有任何方法可以以更随意的方式从类外发送数据。例如:

var server = new Server( 3000 )
this.Server.write( data )
这似乎有效:

在构造函数的this.Server.on('connection')中:

this.Socket = sock
添加方法:

Send( msg ) {
    if ( !this.Socket ) {
        console.log( "Server.Send(): no client connected" )
    }
    this.Socket.write( msg )
}
在sock.on('close')中,将套接字方法设置回null:

this.Socket = null
然后:

(需要检查连接)

var server = new Server( 3000 )
server.Send( data )