2014-07-03 1 views
5

Quand je suis en utilisant l'API WebSocket native je peux voir juste une charge utile dans ma console de chrome pour sockts: enter image description hereQue signifient ces nombres dans la charge utile socket.io?

Mais quand je l'utilise socket.io avec leur événement emit, je peux voir quelques chiffres étranges avant que ma charge utile réelle . Je comprends que les couleurs signifient que vous envoyez ou recevez les données, mais que signifient les chiffres 42, 3, 2, 430, 420, 5.

Y at-il un endroit où je peux obtenir une liste complète de ces numéros avec des descriptions?

enter image description here

Le code qui génère c'est un peu grand, donc je viens de poster de petits extraits.

côté client regarde toujours comme ça: côté

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

Server ressemble à ceci:

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

Répondre

4

Websockets vous permettent d'envoyer des données en arrière sur une communication en duplex intégral canal. En revanche, Socket.IO est un framework d'application temps réel qui utilise les websockets comme moyen de transport, ajoutant des fonctionnalités telles que les connexions de noms, les pièces, le repli vers d'autres transports, etc. Pour construire toutes ces fonctionnalités, les messages échangés sémantique pour que Socket.IO sache ce qu'ils signifient (c'est-à-dire quel type de message est-il, événement, erreur etc.) et que faire avec eux. Pour cela, il utilise un qui encadre le message avec des codes qui identifient sa sémantique. C'est ce que vous voyez avec ces chiffres.

Malheureusement, la documentation de Socket.IO est très succincte et il est difficile de comprendre exactement comment ces codes sont combinés et analysés. Pour obtenir leur signification exacte, je pense que l'on doit regarder le code source Socket.IO.

EDIT d'un socket.io Github issue:

Ceci est géré en socket.io-analyseur et engine.io-analyseur, qui sont mises en oeuvre de protocole socket.io-et-engine.io protocole, respectivement. Vous pouvez trouver la description du protocole pour socket.io here et pour engine.io here.

Les sections de codage de ces documents présentent un intérêt lors de l'examen des données réelles qui sont envoyées via les transports. Le protocole socket.io traite le codage des métadonnées, comme les noms de fichier dans un format manipulable par un moteur.

+0

Je ne pense pas qu'il y ait de documentation, au moins aucune que j'ai pu trouver. C'est pourquoi dans mon dernier paragraphe, j'ai mentionné qu'il faudrait probablement regarder le code source pour comprendre leur signification. Une solution consisterait à ouvrir un problème sur la page GitHub du projet et à demander à l'un des développeurs de fournir des exemples avec des détails. – Bogdan

+0

Comment pourriez-vous produire un message payloaded avec emit? J'ai juste essayé de reproduire, mais tout le message que j'ai donné était juste un message simple, pas payloaded. – mudlee