4G / satellite switch : du fait du changement de type de connexion lorsque le navire est à la limite de captation du réseau 4G, MonitorFish est inutilisable
satellite établi : du fait de la faible connexion et des pertes de paquets, MonitorFish est faiblement utilisable
satellite instable : en giration ou en liaison satellite non-établie, MonitorFish est inutilisable.
La navigation sur MonitorFish est donc très dégradée à partir du moment où le patrouilleur perd le réseau 4G :
Un nombre important de requêtes est en échec (> 50%)
Si la requête aboutit, le temps d’attente est très long (entre 20 et 60 secondes)
Solutions
[x] Ajouter un proxy Service Worker qui charge en cache les URLs voulues
[x] Avant le début de la marée (lorsque le navire est à quai), charger les fonds de cartes dans le stockage interne du navigateur.
[x] Sur une nouvelle page init_offline, parcourir l'URL du fond de carte (/xyz) pour charger toutes les tiles sur la zone
des PAMs
[x] Autoriser seulement un seul fond de carte (''light)
[x] Réduire la taille des données envoyées (seulement sur la page navigation) :
[x] Récupérer les positions des navires seulement sur la vue affichée
[x] Réduire la taille des données récupérées à Saint-Malo, ne récupérer seulement celles essentielles :
[x] Enlever les données inutiles en mode navigation (non super-user)
[x] Enlever le XML du payload du JPE
[x] Relancer la requête si elle échoue (3 essais)
[x] Afficher un bandeau à l'écran s'il y a une perte de connexion
[x] Charger les couches administratives et réglementaires dans le cache interne du navigateur.
Attention le cache ne peut pas stocker plus que 50MB (vérifier que toutes les couches tiennent dans le cache)
Tech
L'utilisation d'un "Service Worker" semble adapté pour stocker des données dans le "Cache API" du navigateur
Réduction des requêtes APIs
En prod
/vessels: 475.80 kB (4.17 MB size)
/wfs/...regulations: 125.39 kB (1.34 MB size)
/infractions: 23.17 kB (157.48 kB size)
/gears: 2.59 kB (7.78 kB size)
/vessels/find: 2.43 kB (8.61 kB size)
vessels/logbook/find: 2.09 kB (1.90 kB size)
mission_actions/controls: 2.85 kB (13.59 kB size)
En local
Sur /bff
Données à précharger :
/wfs/...regulations: 2.15 kB (8.42 kB size)
/species: 142.38 kB (541.70 kB size)
/infractions: 1.09 kB (1.50 kB size)
/gears: 1.90 kB (7.93 kB size)
à optimiser :
/vessels: 225.19 kB (1.47 MB size)
/vessels/find: 1.44 kB (2.69 kB size)
vessels/logbook/find (12h last hours): 3.66 kB (24.68 kB size)
Sur /nav (après réduction)
/vessels: 153.83 kB (1.24 MB size)
/vessels/find: 1.44 kB (2.69 kB size)
vessels/logbook/find (12h last hours): 3.09 kB (21.43 kB size)
Constat
On constate 4 types de connexions :
La navigation sur MonitorFish est donc très dégradée à partir du moment où le patrouilleur perd le réseau 4G :
Solutions
init_offline
, parcourir l'URL du fond de carte (/xyz
) pour charger toutes lestiles
sur la zone des PAMsnavigation
) :super-user
)Tech
L'utilisation d'un "Service Worker" semble adapté pour stocker des données dans le "Cache API" du navigateur
Réduction des requêtes APIs
En prod
/vessels
: 475.80 kB (4.17 MB size)/wfs/...regulations
: 125.39 kB (1.34 MB size)/infractions
: 23.17 kB (157.48 kB size)/gears
: 2.59 kB (7.78 kB size)/vessels/find
: 2.43 kB (8.61 kB size)vessels/logbook/find
: 2.09 kB (1.90 kB size)mission_actions/controls
: 2.85 kB (13.59 kB size)En local
Sur
/bff
Données à précharger :
/wfs/...regulations
: 2.15 kB (8.42 kB size)/species
: 142.38 kB (541.70 kB size)/infractions
: 1.09 kB (1.50 kB size)/gears
: 1.90 kB (7.93 kB size)à optimiser :
/vessels
: 225.19 kB (1.47 MB size)/vessels/find
: 1.44 kB (2.69 kB size)vessels/logbook/find
(12h last hours): 3.66 kB (24.68 kB size)Sur
/nav
(après réduction)/vessels
: 153.83 kB (1.24 MB size)/vessels/find
: 1.44 kB (2.69 kB size)vessels/logbook/find
(12h last hours): 3.09 kB (21.43 kB size)