2014-07-03 12 views
5

Quando sto usando API native websocket posso vedere solo un carico utile nella mia console Chrome per sockts: enter image description hereCosa significano questi numeri nel payload socket.io?

Ma quando uso socket.io con il loro evento emettere, posso vedere alcuni numeri strani prima che il mio vero e proprio payload . Capisco che i colori significano che hai inviato o ricevuto i dati, ma cosa significano i numeri come 42, 3, 2, 430, 420, 5.

C'è un posto posso ottenere un elenco completo di questi numeri con le descrizioni?

enter image description here

Il codice che genera è una specie di grande, così ho appena inserisco piccoli frammenti.

lato client sembrare sempre così:

socket.emit('joinC', room, function(color){ ... });

lato Server è simile al seguente:

io.sockets.in(room).emit('moveS', {...});

risposta

4

WebSockets consentono di inviare i dati avanti e indietro su una comunicazione full-duplex canale.

Socket.IO d'altra parte è un framework per applicazioni in tempo reale che utilizza WebSockets come caratteristiche di trasporto aggiungendo come namespacing collegamenti, camere, fallback ad altri mezzi di trasporto, ecc Per costruire tutte quelle caratteristiche, i messaggi scambiati avanti e indietro devono Cary alcuni semantica in modo che Socket.IO sappia cosa significano (cioè che tipo di messaggio è, evento, errore ecc.) e cosa fare con loro. Per questo utilizza uno che incornicia il messaggio con alcuni codici che identificano la sua semantica. Questo è quello che stai vedendo con quei numeri.

Sfortunatamente la documentazione di Socket.IO è molto concisa ed è difficile capire esattamente come questi codici vengono combinati e analizzati. Per ottenere il loro significato esatto penso che sia necessario guardare il codice sorgente Socket.IO.

EDIT da un socket.io Github issue:

Questo è gestito in socket.io-parser e engine.io-parser, che sono rispettivamente implementazioni di socket.io protocollo e engine.io protocollo. Puoi trovare la descrizione del protocollo per socket.io here e per engine.io here.

Le sezioni di codifica in questi documenti sono di interesse quando si guardano i dati effettivi inviati attraverso i trasporti. Il protocollo socket.io gestisce la codifica dei metadati, come i namespace in un formato gestibile da engine.io-protocol.

+0

Non penso ci sia alcuna documentazione, almeno nessuna che potrei trovare. Ecco perché nel mio ultimo paragrafo ho menzionato che probabilmente sarebbe necessario consultare il codice sorgente per comprenderne il significato. Una soluzione sarebbe aprire un problema nella pagina GitHub del progetto e chiedere a uno degli sviluppatori di fornire alcuni esempi con i dettagli. – Bogdan

+0

Come si può produrre un messaggio payloaded con emit? Ho appena provato a riprodurlo, ma tutto il messaggio che ho dato era solo un semplice messaggio, non un payload. – mudlee

Problemi correlati