Кажется, вы неправильно обращаетесь к объекту JSON, но я не знаю вашу структуру JSON, чтобы предоставить пример с вашими данными JSON.
При использовании JSON строго два значения, например ws.send(JSON.stringify(" rotation ", dataValue.value.value));
. Он собирается только преобразовать часть " rotation "
в вывод.
Но скажем, ваши данные настроены так. Вот как вы можете получить к нему доступ.
const data = {
pressure: 'value-pressure',
rotation: 'value-rotation',
embed: {
value: 'value-embed'
}
};
console.log(data.pressure); // value-pressure
console.log(data.rotation); // value-rotation
console.log(data.embed.value) // value-embed
Вы всегда можете преобразовать ее в строку, используя toString()
перед отправкой, а затем повторно преобразовать ее в JSON с JSON.parse
после получения для доступа к JSON.
Я сделал этот маленький пример для тестирования с использованием JSON.stringify()
, он отправил его, просто не знал ваш формат данных. Отправьте JSON через веб-сокет, а затем получите доступ к объекту.
const WebSocket = require('ws')
var Server = require('ws').Server;
var port = process.env.PORT || 3000;
var ws = new Server({port: port});
ws.on("connection", function(w) {
w.on('message', function(msg){
let data = JSON.parse(msg);
console.log('Incoming', data.pressure); // Access data.pressure value
});
});
и отправить
const WebSocket = require('ws')
const ws = new WebSocket("ws://localhost:3000");
console.log('sent');
ws.onopen = function (event) {
let data = {
pressure: 'value',
rotation: 'rotation',
};
ws.send(JSON.stringify(data)) // Send all the data
};