Mon application reçoit des messages JSON depuis une connexion WebSocket.
Il existe différents types de réponses, qui sont formatées de cette manière :
{
"type": "snapshot",
"product_id": "BTC-EUR",
"bids": [["1", "2"]],
"asks": [["2", "3"]]
}
ou
{
"type": "l2update",
"product_id": "BTC-EUR",
"changes": [
["buy", "1", "3"],
["sell", "3", "1"],
["sell", "2", "2"],
["sell", "4", "0"]
]
}
... par exemple (voir API complète aquí ).
En fonction du "type", je voudrais que GSON mappe une classe différente (par exemple, Snapshot.class et l2update.class).
J'ai des gestionnaires de messages qui s'abonnent à la connexion WebSocket et je veux que le message soit traité par le gestionnaire approprié. Par exemple :
- ErrorMessageHandler gère les erreurs.
- SnapshotMessageHandler créerait le carnet d'ordres initial.
- L2UpdateMessageHandler mettrait à jour le carnet d'ordres.
- et ainsi de suite
Mon problème est de distribuer les messages en fonction de leur type.
Je pensais les convertir dans la classe appropriée, puis appeler le gestionnaire correspondant en utilisant une fabrique. Je suis actuellement bloqué à la première étape, la conversion du JSON dans Error.class ou Snapshot.class selon le "type".
Comment puis-je faire ça ?