2016-06-15 2 views
1

Я пытаюсь включить функции чата в мое приложение MEAN, все, что я до сих пор выполнял, является средой, где все подключенные пользователи могут общаться. Не отдельная группа. Я следую некоторым учебным пособиям, но они делают по трюку, как отправка некоторых ключевых слов перед сообщением (свист, как говорится). Насколько я знаю, каждому подключенному пользователю предоставляется отдельный идентификатор сокета, через который осуществляется связь, но я не смог получить этот идентификатор.Частный чат с использованием socket.io в MEAN app

module.exports = function(socket){ 
    //console.log(socket);  
    var users =[]; 

    socket.on('username',function(data){ 
    users.push({id:socket.id,username:data.message}); 
    socket.emit('username',users) 
    }) 
    console.log('connected'); 
    socket.on('typing',function(data){ 
     //socket.emit('typing',{message:"helo angular"}); 
     socket.broadcast.emit('typing',{message:data.message}); 
    }); 

Это показывает мне сокет не определен, кто имеет лучшее представление о том, как выполнить личное сообщение, используя Socket.io и node.js
может кто-нибудь просветить меня об этом.

+0

где вы инициализируете сервер 'socket.io' и создаете новое соединение сокета? –

+0

@MukeshSharma на моем основном app.js мой код идет здесь var server = require ('http'). Server (приложение); var io = require ('socket.io') (сервер); var socket = require ('./ routes/socket.js'); сервер.слушать (8000); console.log («прослушивание сервера на порту: 8000»); io.on («соединение», розетка); – jsgeek

+0

Вы можете поделиться трассировкой стека ошибок? –

ответ

0

Сделать все пользователи участниками своей уникальной группы.

socket.join(socket.id); 

Тогда вы можете отправить сообщение одному пользователю, делая это

io.sockets.in(whichever_user.id).emit('msg', "Hello there user lets have a private chat!");


Я бы рекомендовал использовать рамки Экспресс узла и implenting Socket.io в Это. Вот некоторые ссылки, рассказывающие, как настроить Экспресс и Socket.io:

https://www.youtube.com/watch?v=WH5qsGnFkBM&lc=z135dbryaqbfitiee22pd33ouozhwft3q

--- Youtube комментарий говорит вам, как настроить экспресс-генератор.

Адриан Гонсевич:

Для тех, кто хочет иметь подобную структуру каталогов, как Баки:

  1. Установить Экспресс генератор "SUDO НПМ установки -g экспресс-генератор"

  2. Перейдите в каталог, в котором вы хотите создать проект, и введите «express myapp --ejs» 3. Выберите новый созданный каталог -> «cd myapp»

  3. Установить все node_modules -> "НПМ установки"

  4. сервер Run -> "старт НПМ"

  5. Открыть браузер и введите "http://localhost:3000/" Весело;)

Using socket.io in Express 4 and express-generator's /bin/www

--- Здесь рассказывается, как настроить сокет в проекте Node.js Express.

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