Simplemente envío una matriz del cliente al servidor. Cuando intento registrar esta matriz desde el lado del cliente, me da valores aleatorios en la matriz.
Código del lado del cliente
let ws = new WebSocket("ws://localhost:4000"); ws.send([1,2,3]);Código del lado del servidor
wss.on("connection", (ws) => { ws.on("message", m => { //I searched a little and learnt a way to convert buffer to array with a simple ES6 feature but it doesn't work properly console.log([...m]); }); }); La salida es: [ 49, 44, 50, 44, 51 ]
Publique cómo puedo solucionarlo y explique el motivo para que yo y otras personas podamos entender la lógica detrás de esto.
intente analizar el búfer en un objeto javascript usando JSON.parse(m) no es necesario.
Tenga en cuenta que si el mensaje no es una cadena JSON, generará un error.
Todavía no sé por qué sucede, pero sé que tengo una solución para este problema. Simplemente convierto la matriz en una cadena en el lado del cliente y la reconvierto en una matriz en el lado del servidor.
Lado del cliente
ws.send([1,2,3].toString());Lado del servidor
arr = [] wss.on("connection", (ws) => { ws.on("message", m => { arr = m.toString().split(","); arr = arr.map(x => { return parseInt(x); }); console.log(arr); }); });