Как добавить чат и отобразить класс well в socket.io?

Я создаю приложение чата с socket.io и nodejs. у меня есть эти проблемы - когда я обновляю страницу, добавляется еще один подключенный клиент - когда я отключаю, он не нарезается - когда я отправляю сообщение, оно не отображается в разделе "хорошо"

Я попытался изменить div «хорошо»

/сервер.js

var http = require('http');
var express = require('express'),
 app = module.exports.app = express();

var server = http.createServer(app);
var io = require('socket.io').listen(server);  //pass a http.Server instance

//now you can use app and io
users=[];
connections = [];

//server.listen(process.env.PORT || 3000); // this is another way of port listen
console.info('Server running...');

app.get('/', function (req, res){
    res.sendFile(__dirname + '/index.html');
});

//create connections
io.on('connection', function(socket){
    connections.push(socket);
    console.info('connected: %s sockets connected', connections.length);

    //disconnect /////////////////////// doesn't work ////////////////////////////
io.on('disconnection', function(data){
        connections.slice(connections.indexOf(socket), 1);
        console.info('disconnected: %s sockets connected', connections.length);
});

  // send message
    socket.on('send message', function (data){
      console.info(data);
      io.sockets.emit('new message', {msg: data});

    });
  });

server.listen(80);  //listen on port 80   

/client.html

  <div class = "container">
      <div class = "row">
        <div class = "col-md-4">
          <div class = "well">
            <h3>Online Users</h3>
            <ul class = "list-group" id = "users">
            </ul>
          </div>
        </div>
        <div class = "col-md-8">
          <div class = "chat" id = "chat">
          </div>
          <form id = "messageForm" action = "index.html" method = "post">
            <div class = "form-group">
              <label> Enter Message</label>
              <textarea class = "form-control" id = "message" name = "name" rows = "8" cols = "80"></textarea>
              <br >
              <input type = "submit" class = "btn btn-primary" name = "" value = "Send Message" />
            </div>
          </form>
        </div>
      </div>
    </div>

/клиент js

<script src = "/socket.io/socket.io.js"></script>
    <script>
      $(function(){
        var socket = io.connect();
        var $messageForm = $('#messageForm');
        var $message = $('#message');
        var $chat = $('#char');

        $messageForm.submit(function (e) {
          e.preventDefault();
          console.info('submitted');
          socket.emit('send message', $message.val());
          $message.val('');
        });

        socket.on('new message', function(data){
          // $chat.append('<div class = "well">' +data.msg+ '</div>');
          $chat.append('<ul class = "list-group" id = "users">' +data.msg+ '</ul>');
        });
      });
    </script> 

Я просто хочу поболтать.append(); работать.

Попробуйте создать минимальный воспроизводимый пример, чтобы привлечь больше людей к ответу на ваш вопрос и лучше соответствовать нашим правилам как задать хороший вопрос.

Hille 19.02.2019 10:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
510
1

Ответы 1

Проблема здесь

   var $chat = $('#char');

В вашем коде нет div с id char. Вы упомянули, что сообщение должно быть добавлено в div well, поэтому вы можете использовать

var $chat = $('#well');

или есть div с id chat

var $chat = $('#chat');

Голоса, отданные теми, у кого репутация менее 15, записываются, но не изменяют публично отображаемый результат публикации.

Mayar 20.02.2019 22:00

Другие вопросы по теме