J'ai trouvé un excellent didacticiel websocket. Si le serveur reçoit un message, le serveur le décode et écrit sur la console, après quoi le serveur le renvoie au client.node.js websocket envoyer des données personnalisées
var firstByte = data[0],
secondByte = data[1];
if(!(firstByte & 0x81)) socket.end();
if(!(secondByte & 0x80)) socket.end();
var length = secondByte & 0x7f;
if(length < 126){
var mask = data.slice(2,6);
var text = data.slice(6);
}
if(length == 126){
var mask = data.slice(4,8);
var text = data.slice(8);
}
var unMaskedText = new Buffer(text.length);
for(var i=0;i<text.length;i++){
unMaskedText[i] = text[i]^mask[i%4];
}
console.log(unMaskedText.toString());
if(unMaskedText.length > 125)
var newFrame = new Buffer(4);
else
var newFrame = new Buffer(2);
newFrame[0] = 0x81;
if(unMaskedText.length > 125){
newFrame[1] = 126;
var length = unMaskedText.length;
newFrame[2] = length >> 8;
newFrame[3] = length & 0xFF; //1111 1111
} else {
newFrame[1] = unMaskedText.length;
socket.write(newFrame, 'binary');
socket.write(unMaskedText, 'utf8');
}
Cela fonctionne, mais je voudrais envoyer des messages personnalisés, pas seulement ce que le client m'a envoyé.
Peut-être vous trouvé cette réponse wiki intéressante: http://stackoverflow.com/questions/8125507/how-can-i-send-and-receive-websocket-messages. – pimvdb
mais quel shound je modifie dans mon code? – Uw001
En y regardant, pourquoi ne pas envoyer autre chose que 'unMaskedText' à la place? Par exemple. juste écraser 'unMaskedText' avant d'effectuer les calculs d'envoi. – pimvdb