Вы уже пытались использовать не-литералы в качестве ключей в своем сообщении JSON? Я создаю небольшой чат-сервер для изучения socket.io, используя сообщения JSON. Вот мой соответствующий код:
на стороне клиента:
var jsonMsg = {
action: 'SEND',
body: msg,
name: name.val()
};
socket.send(JSON.stringify(jsonMsg));
Обратите внимание, что msg и name.val () являются строковыми значениями, полученными из соответствующих полей ввода.
на стороне сервера:
client.on('message', function(m, c) {
// parse message
var msg = json.parse(m);
switch (msg.action) {
case 'SEND':
// send message to channel
var broadCast = {
posted: date.toReadableDate(new Date(), 'timestamp'),
message: msg.body,
name: msg.name
};
socket.broadcast(json.stringify(broadCast));
break;
}
});
Примечание: toReadableDate
- это пользовательский метод-прототип.
Сообщение получено правильно на сервере и на стороне клиента как широковещательная.