2015-04-18 3 views
1

Я использую WebSocket для отображения определенного значения, которое подсчитывает, сколько секунд прошло для всех посещений моего сайта за все время. Например, если пользователь A проводит 20 секунд на моем сайте, пользователь B тратит 30 секунд, а пользователь C тратит 10 секунд, а 60 секунд добавляется к счетчику. Счетчик постоянно обновляется. Вот мой код в JavaScript и HTML. Теперь я хочу удалить форму из HTML, но когда я это сделаю, я получаю текст «[object HTMLTextAreaElement]». Как я могу решить эту проблему и получить свой сайт?Почему мой WebSocket не работает, когда я удаляю форму в HTML?

var socket = new WebSocket('ws://echo.websocket.org'); 
 
function count() { 
 
\t if(! counter){ 
 
\t \t var counter = 1; 
 
\t } else { 
 
\t \t counter = counter + 1; 
 
\t }; 
 
\t socket.send(counter); 
 
\t document.getElementById('messages').innerHTML = '<li>' + message + '</li>'; 
 
} 
 
setInterval(count, 1000); 
 
count(); 
 
window.close() = function() { 
 
\t socket.close(); 
 
};
<!DOCTYPE html> 
 
<html lang="en"> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <title> 
 
     WebSockets Demo 
 
    </title> 
 
    </head> 
 
    <body> 
 
    <div id="page-wrapper"> 
 
     <h1> 
 
     WebSockets Demo 
 
     </h1> 
 
     <ul id="messages"> 
 
     </ul> 
 
     <form id="message-form" action="#" method="post"> 
 
     <textarea id="message" required></textarea> 
 
     <button type="submit"> 
 
      Send Message 
 
     </button> 
 
     </form> 
 
    </div> 
 
    <script src="app.js"> 
 
    </script> 
 
    </body> 
 
</html>

ответ

0

ваша переменная message не определена в коде. Поэтому он будет ссылаться на ваш HTML DOM с соответствующим идентификатором, который равен <textarea id="message" required></textarea>.

Я предполагаю, что вы хотите отобразить возвращенное сообщение с сервера эха. Если да, то код будет выглядеть следующим образом:

var socket = new WebSocket('wss://echo.websocket.org'); 
 
var counter = 0; 
 
function count() { 
 
\t counter++; 
 
\t socket.send(counter); 
 
} 
 
socket.onmessage = function(evt){ 
 
    document.getElementById('messages').innerHTML += '<li>' + evt.data + '</li>'; 
 
}; 
 
socket.onopen = function(){ 
 
    setInterval(count, 1000); 
 
    count(); 
 
}; 
 
window.close() = function() { 
 
\t socket.close(); 
 
};
<!DOCTYPE html> 
 
<html lang="en"> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <title> 
 
     WebSockets Demo 
 
    </title> 
 
    </head> 
 
    <body> 
 
    <div id="page-wrapper"> 
 
     <h1> 
 
     WebSockets Demo 
 
     </h1> 
 
     <ul id="messages"> 
 
     </ul> 
 
     <form id="message-form" action="#" method="post"> 
 
     <textarea id="message" required></textarea> 
 
     <button type="submit"> 
 
      Send Message 
 
     </button> 
 
     </form> 
 
    </div> 
 
    <script src="app.js"> 
 
    </script> 
 
    </body> 
 
</html>

Смежные вопросы