Как прикрепить имя пользователя к сообщениям, отправленным или полученным в приложении чата, созданном с помощью Socket.io? - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть ** серверный код стороны как следующий **

 var express=require('express');
var app = express()

var http = require('http').createServer(app);
var io = require('socket.io').listen(http);
app.get('/', function(req,res){

    res.sendFile(__dirname + '/index.html');
});
io.on('connection',function(socket){
    console.log("A user connection is detected");
    socket.on('chat message',function(msg){
        io.emit('chat message',msg);
        console.log('message:'+msg);
    
    });
});
http.listen(4000,function(){

console.log("Listening on the port");
});

и на стороне клиента выглядит следующим образом.

<!doctype html>
<html>
  <head>
    <title>You-chat By Ayush Shrivastav</title>
    <style>
  
      * { margin: 0; padding: 0; box-sizing: border-box; }
      body { font: 18px Helvetica, Arial; 
        font-weight: bolder;
        color: cornsilk;
      background-image: url(https://cdn.hipwallpaper.com/i/32/21/RAh3ga.jpg);
      background-blend-mode:lighten;
    }
      form { background: rgb(4, 36, 95); padding: 3px; position: fixed; bottom: 0; width: 100%; }
      form input {font-size: medium; border: 0; padding: 17px; width: 90%; margin-right: .5%; }
      form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; }
      #messages { list-style-type: none; margin: 0; padding: 0; }
      #messages li { padding: 20px 12px; }
      #messages li:nth-child(odd) { background: rgba(70, 64, 105, 0.61); }
    </style>
  </head>
  <body>
    <ul id="messages"></ul>
    <form action="">
      <input id="m" placeholder="Type a Message.." autocomplete="off" /><button>Send</button>
    </form>
    <script src="/socket.io/socket.io.js"></script>
    <script src="https://code.jquery.com/jquery-1.11.1.js"></script>
  <script>
      $(function(){
        var socket=io();
     $('form').submit(function(event){
         event.preventDefault();
         socket.emit('chat message', $('#m').val());
         $('#m').val('');
         return false;
     });
     socket.on('chat message', function(msg){
      $('#messages').append($('<li>').text(msg));
        window.scrollTo(0, document.body.scrollHeight);
      });
      });
  
  </script>

  </body>
  
</html>

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

...