Итак, я работаю с WebSockets, используя библиотеку ws. И сервер, и клиент могут отправить сообщение при нажатии определенной кнопки, и это сообщение представляет собой строковое JSON:
var msg = {
'type' : 'chat',
'content' : String(chat_msg)
};
conn.send(JSON.stringify(msg));
И сервер, и клиент получают сообщение и превращают его в объект еще раз:
var msg = JSON.parse(message.data);
Однако ... это работает только для сообщений, отправленных с сервера клиенту. Когда сообщение отправляется от клиента на сервер, эта операция синтаксического анализа не выполняется, и я получаю следующее сообщение:
Uncaught SyntaxError: Unexpected token A in JSON at position 0
Это предотвращает попадание любого сообщения на сервер, и единственный способ предотвратить это - не JSON ничего разбирать; но тогда "message.data" остается строкой (и я вижу ее в консоли - typeof (message.data) - это строка, и если я ее распечатаю, я вижу фактическую текстовую версию объекта JSON), но, конечно, , если он остается строкой, его нельзя использовать, так как я не могу легко получить доступ к его полям.
Так в чем проблема? Код для сервера и клиента одинаковый, так почему эта разница?