gpt4 book ai didi

javascript - 通过 JS WebRTC 在计时器中发送数据在结束前重新加载时崩溃

转载 作者:行者123 更新时间:2023-12-03 05:11:17 25 4
gpt4 key购买 nike

我在 Node 提供的 server.js javascript 文件中有这段简单的代码:

function multiStep(myConnection, data) {
var i=0;
var myTimer=setInterval(function() {
if (i<data.length){
var element=JSON.stringify(data[i]);
console.log("mando elemento: "+element);
myConnection.send(element);
i++;
}
}, 3000);
}

//require our websocket library
clearInterval(myTimer);
var WebSocketServer = require('ws').Server;
//creating a websocket server at port 9090
var wss = new WebSocketServer({port: 9090});

//when a user connects to our sever
wss.on('connection', function(connection) {

loadJSON(function(response) {

//when server gets a message from a connected user
connection.on('message', function(message){
console.log("Got message from a user:", message);
});
var json = JSON.parse(response);
multiStep(connection, json, 0);
})
});

loadJSON 只是从另一个网站加载 json 数据文件。当我第一次运行客户端应用程序或超时结束时,一切正常。然而,如果我在超时未完成时重新加载页面,当我尝试使用服务器上旧页面的连接与报告时,我会崩溃:

/var/www/html/MATERIALI/phonegap/node_modules/ws/lib/WebSocket.js:219 else throw new Error('not opened'); ^ Error: not opened at WebSocket.send (/var/www/html/MATERIALI/phonegap/node_modules/ws/lib/WebSocket.js:219:16) at null. (/var/www/html/MATERIALI/phonegap/WebRTC/server.js:36:9) at wrapper [as _onTimeout] (timers.js:261:14) at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)

事实上,鉴于页面已重新加载,我可以简单地忽略旧 session 。在这种情况下如何避免服务器崩溃?

最佳答案

好吧,我想我找到了解决方案;函数 multiStep 变为:

function multiStep(myConnection, data) {
var i=0;
clearInterval(myTimer);
myTimer=setInterval(function() {
if (i<data.length){
var element=JSON.stringify(data[i]);
console.log("mando elemento: "+element);
try {
myConnection.send(element);
console.log("mandato elemento");
} catch(err) {
console.log('Websocket error: %s', err);
}
i++;
} else {
}
}, 3000);
}

并且它不再崩溃。

关于javascript - 通过 JS WebRTC 在计时器中发送数据在结束前重新加载时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41810527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com