У меня есть это приложение для малого чата в javascript и узле, и я пытаюсь отправить простой объект JSON поверх websocket, но он отображает ошибку, связанную с «JSON.parse», которую я делаю в сервер. Я попытался изменить код, но ничего не работает. Почему это может быть? моей операционной системой является Windows 8.1, и я использую firefox и chrome.Ошибка отправки JSON через веб-сайт
undefined:1
undefined
^
SyntaxError: Unexpected token u
at Object.parse (native)
at WebSocketConnection.<anonymous> (C:\Users\*****\Documents\simple
_chat\server.js:39:22)
здесь код на стороне клиента
var socket = new WebSocket('ws://127.0.0.1:1234');
function sendMessage(){
var message = document.getElementById('message').value;
var message_send ={
name_:"WHATEVER",
message_:message
}
socket.send(JSON.stringify(message_send));
}
socket.addEventListener("message", function(e){
var msg = e.data;
console.log(e);
document.getElementById('chatlog').innerHTML+='<br>'+msg;
})
здесь код сервера:
var count = 0;
var client ={};
var websocket = require('websocket').server;
wsServer = new websocket({httpServer:server});
wsServer.on('request',function(r){
var connection = r.accept(null, r.origin);
var id = count++;
client[id]=connection
console.log((new Date()) + ' Connection accepted [' + id + ']');
connection.on('message', function (message) {
var k = JSON.parse(message.data);
var message_ = k.content_
var name_ = k.name_;
console.log(name_ +" "+message_);
for(var i in client){
client[i].sendUTF(name_+": "+message_);
}
});
connection.on('close', function (reasonCode, description) {
delete client[id];
console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.');
})
})
Какое исходное значение возвращается из запроса http? –
, поэтому ошибка говорит 'u', но ваш код не имеет каких-либо переменных, называемых' u', вы можете помочь нам, указав, где вещи на самом деле ошибочны, и что JSON - это то, что вы пытаетесь прочитать в том, может ли он быть разрешен в сети (404, 403 и т. д.), и если он решает, действительно ли это json? Вы не можете просто использовать JSON.parse, вам всегда нужно обернуть его в try/catch, потому что он будет использовать плохой ввод. Добавьте try/catch и посмотрите, генерирует ли код, и если да, то что такое ошибка и ввод. –