aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/session/ConnectionManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/traccar/session/ConnectionManager.java')
-rw-r--r--src/main/java/org/traccar/session/ConnectionManager.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/main/java/org/traccar/session/ConnectionManager.java b/src/main/java/org/traccar/session/ConnectionManager.java
index 0e0ea1eb8..c2f602c11 100644
--- a/src/main/java/org/traccar/session/ConnectionManager.java
+++ b/src/main/java/org/traccar/session/ConnectionManager.java
@@ -285,7 +285,6 @@ public class ConnectionManager implements BroadcastInterface {
}
updateDevice(true, device);
- broadcastService.updateDevice(true, device);
}
public DeviceState getDeviceState(long deviceId) {
@@ -324,7 +323,9 @@ public class ConnectionManager implements BroadcastInterface {
@Override
public synchronized void updateDevice(boolean local, Device device) {
- if (!local && Device.STATUS_ONLINE.equals(device.getStatus())) {
+ if (local) {
+ broadcastService.updateDevice(true, device);
+ } else if (Device.STATUS_ONLINE.equals(device.getStatus())) {
timeouts.remove(device.getId());
removeDeviceSession(device.getId());
}
@@ -339,6 +340,9 @@ public class ConnectionManager implements BroadcastInterface {
@Override
public synchronized void updatePosition(boolean local, Position position) {
+ if (local) {
+ broadcastService.updatePosition(true, position);
+ }
for (long userId : deviceUsers.getOrDefault(position.getDeviceId(), Collections.emptySet())) {
if (listeners.containsKey(userId)) {
for (UpdateListener listener : listeners.get(userId)) {
@@ -350,6 +354,9 @@ public class ConnectionManager implements BroadcastInterface {
@Override
public synchronized void updateEvent(boolean local, long userId, Event event) {
+ if (local) {
+ broadcastService.updateEvent(true, userId, event);
+ }
if (listeners.containsKey(userId)) {
for (UpdateListener listener : listeners.get(userId)) {
listener.onUpdateEvent(event);