Soy nuevo en WebSockets y estoy trabajando para enviar datos del lado del cliente al lado del servidor y de vuelta al lado del cliente para una aplicación de chat básica. Puedo enviar los datos al lado del servidor y analizarlos bien con JSON.parse, pero cuando trato de devolverlos al lado del cliente, aparece un error al intentar analizarlos. El error es "Token o inesperado en JSON en la posición 1", lo que creo que significa que no es un objeto JSON que estoy tratando de analizar. Pero no entiendo por qué cambia cuando se envía de vuelta al lado del cliente.
Aquí está el script del lado del cliente que envía los datos al lado del servidor:
var userMessage = messageBox.value; var userId = user.value; ws.send(JSON.stringify({ text: userMessage, id: userId }));El script del lado del servidor que lo atrapa y lo envía de vuelta al lado del cliente:
ws.on('message', function incoming(data) { client.send(data); })Luego, de vuelta en el lado del Cliente, capturo los datos devueltos y los envío a una función para que se muestre de esta manera:
function showMessage(data) { const obj = JSON.parse(data); const textMessage = obj.text; console.log(textMessage); } ws.onmessage = ({ data }) => showMessage(data);Según sus registros de depuración, parece que es un búfer. Intente usar el método .toString() en su objeto y luego haga un JSON.parse en el lado del cliente.