在MEAN app中使用socket.io进行私聊

时间:2016-06-15 08:59:26

标签: node.js socket.io chat mean

我正在尝试在我的MEAN应用程序中包含聊天功能,我所完成的所有内容都是所有连接用户都可以进行通信的媒介。不是一个单独的组。我遵循一些教程,但他们通过伎俩,如在消息前发送一些关键词(他们说的哨子)。 据我所知,每个连接的用户都提供了一个单独的套接字ID,通过它进行通信,但我没有获得该ID。

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执行私人消息
任何人都可以告诉我这个。

1 个答案:

答案 0 :(得分:0)

让所有用户加入他们自己的唯一群组。

socket.join(socket.id);

然后,您可以通过执行此操作向一个用户发送消息

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

我建议使用Node的Express框架,并在其中实现Socket.io。 以下是一些链接,告诉您如何设置Express和Socket.io:

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

--- Youtube评论告诉你如何设置快速生成器。

  

AdrianGąsiewicz:

     

对于那些希望拥有与Bucky类似的目录结构的人:

     
      
  1. 安装Express生成器“sudo npm install -g express-generator”

  2.   
  3. 转到要创建项目的目录并键入“express myapp --ejs”3。选择新创建的目录 - > “cd myapp”

  4.   
  5. 安装所有node_modules - > “npm install”

  6.   
  7. 运行服务器 - > “npm start”

  8.   
  9. 打开浏览器并输入“http://localhost:3000/”玩得开心;)

  10.   

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

---这告诉您如何在Node.js Express项目中设置套接字。