Skip to content

Commit ead9635

Browse files
committed
tried to fix reconnect issues once more
1 parent aec7baf commit ead9635

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

www/scripts/sepiaFW.ui.build.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -229,10 +229,7 @@ function sepiaFW_build_ui_build(){
229229
SepiaFW.ui.longPressShortPressDoubleTap(sepiaLabel, function(){
230230
//long-press
231231
//e.g.: force reconnect
232-
SepiaFW.client.closeClient();
233-
setTimeout(function(){
234-
SepiaFW.client.resumeClient();
235-
}, 3000);
232+
SepiaFW.client.closeClient(true, SepiaFW.client.resumeClient);
236233
},'',function(){
237234
//short press
238235
},function(){
@@ -396,7 +393,13 @@ function sepiaFW_build_ui_build(){
396393
if (buttonEle){
397394
$(buttonEle).off();
398395
SepiaFW.ui.longPressShortPressDoubleTap(buttonEle, function(){
399-
SepiaFW.ui.resetMicButton();
396+
//switch issue
397+
if (SepiaFW.client.isMessagePending){
398+
//e.g.: force reconnect
399+
SepiaFW.client.closeClient(true, SepiaFW.client.resumeClient);
400+
}else{
401+
SepiaFW.ui.resetMicButton();
402+
}
400403
//custom
401404
if (customCallbackLong) customCallbackLong();
402405
},'',function(){

www/scripts/sepiaFW.webSocket.js

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function sepiaFW_build_client_interface(){
1818
ClientInterface.setDemoMode = SepiaFW.webSocket.client.setDemoMode;
1919
ClientInterface.isDemoMode = SepiaFW.webSocket.client.isDemoMode;
2020

21-
ClientInterface.closeClient = SepiaFW.webSocket.client.closeConnection;
21+
ClientInterface.closeClient = SepiaFW.webSocket.client.closeConnection; //argument: forceReset, forceResetCallback
2222
ClientInterface.pauseClient = SepiaFW.webSocket.client.closeConnection;
2323
ClientInterface.resumeClient = SepiaFW.webSocket.client.instaReconnect;
2424

@@ -58,6 +58,7 @@ function sepiaFW_build_client_interface(){
5858

5959
//states and settings
6060
ClientInterface.allowBackgroundConnection = false;
61+
ClientInterface.isMessagePending = false;
6162

6263
//some constants for link sharing
6364
ClientInterface.deeplinkHostUrl = "https://b07z.net/dl/sepia/index.html";
@@ -1200,6 +1201,7 @@ function sepiaFW_build_webSocket_client(){
12001201
SepiaFW.debug.log("WebSocket: connection open");
12011202
clearTimeout(reconTimer);
12021203
clearTimeout(instaReconTimer);
1204+
clearTimeout(closeConnectionTimer);
12031205
connectionIsOpen = true;
12041206
connectAttempts = 0;
12051207
isConnecting = false;
@@ -1221,7 +1223,7 @@ function sepiaFW_build_webSocket_client(){
12211223
}
12221224

12231225
//close connection
1224-
Client.closeConnection = function(){
1226+
Client.closeConnection = function(forceReset, forceResetCallback){
12251227
//TODO: consider tryReconnect here. When force close set it in the calling function.
12261228
tryReconnect = false;
12271229
clearTimeout(reconTimer);
@@ -1230,7 +1232,19 @@ function sepiaFW_build_webSocket_client(){
12301232
if (webSocket){
12311233
webSocket.close();
12321234
}
1235+
if (forceReset){
1236+
clearTimeout(closeConnectionTimer);
1237+
closeConnectionTimer = setTimeout(function(){
1238+
if (isConnecting || connectionIsOpen){
1239+
webSocket.onclose();
1240+
if (forceResetCallback) forceResetCallback();
1241+
}else{
1242+
if (forceResetCallback) forceResetCallback();
1243+
}
1244+
}, 3000);
1245+
}
12331246
}
1247+
var closeConnectionTimer = undefined;
12341248

12351249
//reconnect on close
12361250
var reconTimer;
@@ -1418,9 +1432,14 @@ function sepiaFW_build_webSocket_client(){
14181432
//Message lost?
14191433
if (messageQueue[id]){
14201434
//TODO: problems!
1435+
SepiaFW.client.isMessagePending = true;
14211436
SepiaFW.debug.error("Message with ID '" + id + "' was not delivered (yet) after 7s!");
1437+
}else{
1438+
SepiaFW.client.isMessagePending = false;
14221439
}
14231440
}, 3500);
1441+
}else{
1442+
SepiaFW.client.isMessagePending = false;
14241443
}
14251444
}, 3500);
14261445
}

0 commit comments

Comments
 (0)