@kiberchainik
начинающий найкрутейшЫй програмЁр

Как сделать приватный чат только между двумя пользователями nodejs?

Как сделать приватный чат только между двумя пользователями nodejs? если (для понимания ситуации) когда один находится в сети то другой может начать с ним чат и этот чат приватный только между ними. и так с другими польозователями, т.е. подобие faceboock, vk. конкретно вопрос, как это сделать, что я должен передать сокету на сервер и каким кодом. потому что я находил инфну только как создать комнату и т.д., это не то! из того что есть это рабочий сервер с клиентом которые конектятся и оправляют сообщения друг другу без всяких яких
клиент:
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
  $(function () {
    var socket = io('http://messenger:8888');
    $('#go').click(function(e){
      e.preventDefault(); // prevents page reloading
      socket.emit('chat message', $('#message').val());
      $('#message').val('');
      return false;
    });
    
    socket.on('chat message', function(msg){
      $('.wrapper_messenger').append($('<li>').text(msg));
    });
  });
</script>

сервер:
var app = require('express')();
var http = require('http').createServer(app);

var io = require('socket.io')(http);

io.on('connection', function(socket){
    console.log('an user connected');
    
    socket.on('disconnect', function(){
        console.log('user disconnected');
    });
    
    socket.on('chat message', function(msg){
        io.emit('chat message', msg);
    });
});
    
http.listen(8888, function(){
    console.log('listening on *:8888');
});
  • Вопрос задан
  • 1028 просмотров
Пригласить эксперта
Ответы на вопрос 2
@vshvydky
Общение 1 на 1 в сокет ио можно реализовать созданием комнаты на 2 их, читай документацию , там все есть
Ответ написан
@mishell_trickster
Вот немного годной инфы о сокетах, чатах, распределеннии нагрузки. И да, тут румы вообще не используются. https://m.habr.com/ru/post/440546/

От себя добавлю, что комнаты - это чисто виртуальное пространство. Это абстракция над обычным коннектом. Можно и свою систему комнат написать если хочешь. Можно интеллектуально выбрасывать людей из комнат или наоборот создавать новые. В чём вопрос? Почему комнаты "это не то"?
Тут скорее вопрос в том, как распределить нагрузку если у тебя онлайн юзеров будет столько же сколько в фейсбуке.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы