2017-08-11 5 views
1

J'ai déjà créé le système multijoueur. Cela fonctionne bien. Mais je veux changer la tête de message (ou - tag, overhead etc ...) pour réduire les données qui ont transmis.Unity WebGL WebSocket Message Head

Node.JS côté serveur a le « message » étiquette

wss.on('message',function incoming(message)){ 
... 
... 
} 

Mais sur le côté unité je ne pouvais pas bien la méthode ou variable.

w = new WebSocket (new Uri (url)); 
yield return StartCoroutine (w.Connect()); 
w.SendString ("some_data"); 

Comment puis-je définir l'étiquette de message. Je sais que socket.io peut le faire mais je ne veux pas de codes de hasard.

Répondre

0

Malheureusement, vous ne pouvez utiliser que la balise 'message' dans la socket Web. Vous pouvez utiliser des balises dans le message. Par exemple;

Sur le côté Unité;

// add comma between event name and data 
w.SendString (string.Format("{0},{1}",eventName,data); 

Du côté js;

wss.on('message',function incoming(message)){ 
    // find first comma 
    var e = message.indexOf(","); 
    if(e != -1){ 
     console.log("eventName : ",message.substring(0,e)," - data : ", message.substring(e+1,message.length)); 
    } 
} 
+0

merci pour la réponse. Mais cela va augmenter mon utilisation des données. Est-ce que socket.io risque l'en-tête? –

+0

en fait, je n'ai pas utilisé socket.io mais je suppose qu'il a des balises. Si votre problème concerne l'utilisation des données, vous pouvez convertir les données en tableau d'octets et créer l'ID d'événement du premier octet. De cette façon, vous n'ajouterez qu'un octet à la taille des données et il y aura 256 types d'événements différents. – OsmanSenol