Esiste un equivalente ai codici di stato HTTP per i messaggi WebSockets?

0

Sto sviluppando un'API WebSocket e mi chiedevo se esistesse uno standard o una procedura ottimale per rispondere ai messaggi dei client. Ad esempio, se la mia API prevede solo numeri con stringhe ma riceve una parola, qual è il modo migliore per rispondere? C'è qualcosa di analogo a una risposta 400? Al contrario, c'è qualcosa come una risposta di 200 per l'input valido?

    
posta Justin Borromeo 08.10.2018 - 09:19
fonte

1 risposta

2

Generalmente, vuoi che il tuo webservice riceva e risponda ai messaggi json. Questo per consentire la massima flessibilità per dopo. L'aggiunta di nuovi campi non modifica i tipi sottostanti attesi da un'estremità o dall'altra.

Espandendoci sopra, generalmente vuoi sempre che la radice sia un oggetto e non un array. Questo perché gli array possono essere vuoti e, ancora una volta, si vuole fornire una linea di base per l'input e l'output che sia flessibile e permetterà cambiamenti in futuro.

In genere tendi ad avere un campo indicativo di stato. Stiamo parlando di codici di risposta del tipo http, ma questo potrebbe essere qualsiasi sistema di codice di stato arbitrario che desideri.

Quindi ti aspetteresti che se il messaggio è "VERDE", ti aspetteresti il seguente messaggio minimo nella risposta:

{
    "status":  200,
    "message": "GREEN"
}

Quindi alla fine del ricevitore, se non trovi json valido o non dovresti trovare un campo di stato, è una bandiera rossa! Altrimenti, controllare lo stato per determinare se l'operazione è stata un successo. 200 qui ovviamente è il codice http standard per dire che tutto è andato bene.

In seguito, puoi eseguire qualsiasi tipo di logica, ad esempio, se vedi lo stato 200, dovresti trovare anche un campo chiamato "messaggio". Anche in questo caso, il sistema è arbitrario, ma generalmente lo si imposta in questo modo per creare una linea di base per il trasferimento di messaggi che consente di stabilire una base di protocollo di base per la comunicazione tra server e client.

    
risposta data 08.10.2018 - 10:23
fonte

Leggi altre domande sui tag