我正在尝试在客户端服务器应用程序中的线程的nodeJS中进行仿真,该线程以20ms的间隔修改数据以及侦听器和发送器。lisener需要每1秒检查一次来自服务器的数据,发送方在需要时向服务器发送一些信息。我尝试创建服务器和连接客户端以读取数据的setInterval,但是似乎每次我连接客户端时,服务器中的所有数据都会重置,而我的运行功能无法正常工作。function sleep(time) { return function (callback) { setTimeout(function(){ console.log(time); callback(); }, time); }}var server = net.createServer(function (socket) { var i = 1; var totalTime = 1000; var time = 20; while (time<totalTime){ run(function*(){ i++; yield sleep(20); console.log("modified datas!"+ i); }); time +=20; } socket.write('write to client\r\n'); socket.pipe(socket);});server.listen(1337, '127.0.0.1');setInterval( function () { var net = require('net'); var client = "1"; var i = 0; var client = new net.Socket(); client.connect(1337, '127.0.0.1', function () { console.log('Connected'); // client.write("Send from client"); }); client.on('data', function (data) { console.log('DATAS IN CLIENT:::: ' + data); i++; if (i == 2) client.destroy(); // client.destroy(); // kill client after server's response }); client.on('close', function () { console.log('Connection closed'); }); }, 6000);这是我从现在开始的航站楼。ConnectedDATAS IN CLIENT:::: write to client20modified datas!5020modified datas!5020modified datas!5020modified datas!5020modified datas!50...ConnectedDATAS IN CLIENT:::: write to client20modified datas!5020modified datas!5020modified datas!5020modified datas!5020modified datas!50当我连接新客户端时,我正在寻找继续传输数据的方法ConnectedDATAS IN CLIENT:::: write to client20modified datas!120modified datas!220modified datas!320modified datas!520modified datas!6...ConnectedDATAS IN CLIENT:::: write to client20modified datas!720modified datas!820modified datas!920modified datas!1020modified datas!11
1 回答
森林海
TA贡献2011条经验 获得超2个赞
run()函数代码未发布,因此很难理解您的代码的实际部分。
但是从您发布的代码i
中,服务器中的变量在每个连接上都设置为1,随后在while / run循环中被修改。
如果要保留i
套接字连接之间的值,则必须在net.createServer
回调之外(在全局范围内)定义它。
添加回答
举报
0/150
提交
取消