aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2016-01-08 21:56:21 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2016-01-08 21:56:21 +1300
commit20f275a86f59fe1b43a4bc1a49a86f815d3ca319 (patch)
treea5fd296d5dfb764b3997be84ecc791c6f066d646
parent84f8d7d1e3ad788cd0f3b1d8bccaeaa9dd8b6b47 (diff)
downloadtraccar-server-20f275a86f59fe1b43a4bc1a49a86f815d3ca319.tar.gz
traccar-server-20f275a86f59fe1b43a4bc1a49a86f815d3ca319.tar.bz2
traccar-server-20f275a86f59fe1b43a4bc1a49a86f815d3ca319.zip
Handle websocket connection idle timeout
-rw-r--r--src/org/traccar/api/AsyncSocketServlet.java4
-rw-r--r--web/app/controller/Root.js6
2 files changed, 7 insertions, 3 deletions
diff --git a/src/org/traccar/api/AsyncSocketServlet.java b/src/org/traccar/api/AsyncSocketServlet.java
index 59f0b7ee2..fbfe248e5 100644
--- a/src/org/traccar/api/AsyncSocketServlet.java
+++ b/src/org/traccar/api/AsyncSocketServlet.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
+ * Copyright 2015 - 2016 Anton Tananaev (anton.tananaev@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,7 +24,7 @@ import org.traccar.api.resource.SessionResource;
public class AsyncSocketServlet extends WebSocketServlet {
- private static final long ASYNC_TIMEOUT = 60000;
+ private static final long ASYNC_TIMEOUT = 10 * 60 * 1000;
@Override
public void configure(WebSocketServletFactory factory) {
diff --git a/web/app/controller/Root.js b/web/app/controller/Root.js
index ff76268b3..23ca94972 100644
--- a/web/app/controller/Root.js
+++ b/web/app/controller/Root.js
@@ -84,10 +84,14 @@ Ext.define('Traccar.controller.Root', {
},
asyncUpdate: function (first) {
- var protocol, socket;
+ var protocol, socket, self = this;
protocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
socket = new WebSocket(protocol + window.location.host + '/api/socket');
+ socket.onclose = function (event) {
+ self.asyncUpdate(false);
+ };
+
socket.onmessage = function (event) {
var i, store, data, array, entity;