首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用node.js和socket.io创建密钥之间的私人聊天

使用node.js和socket.io创建密钥之间的私人聊天
EN

Stack Overflow用户
提问于 2014-05-13 05:14:56
回答 1查看 43.7K关注 0票数 25

如何使用node.js和socket.io向共享conversation_id的私人聊天中的所有用户发送消息?

代码语言:javascript
复制
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);
conversations = {};

app.get('/', function(req, res) {
res.sendfile('/');
});

io.sockets.on('connection', function (socket) {

socket.on('send message', function (data) {

    var conversation_id = data.conversation_id;

    if (conversation_id in conversations) {

        console.log (conversation_id + ' is already in the conversations object');

        // emit the message [data.message] to all connected users in the conversation

    } else {
        socket.conversation_id = data;
        conversations[socket.conversation_id] = socket;

        conversations[conversation_id] = data.conversation_id;

        console.log ('adding '  + conversation_id + ' to conversations.');

        // emit the message [data.message] to all connected users in the conversation

    }
})
});

server.listen(8080);
EN

回答 1

Stack Overflow用户

发布于 2016-10-24 21:21:51

当然:简单地说,

这就是你所需要的:

代码语言:javascript
复制
 io.to(socket.id).emit("event", data);

当用户加入服务器时,将生成套接字详细信息,包括ID.This ID,这有助于向特定人员发送消息。

首先我们需要将所有的socket.ids存储在数组中,

代码语言:javascript
复制
   var people={};

   people[name] =  socket.id;

这里的name是接收者的名字。示例:

代码语言:javascript
复制
  people["ccccc"]=2387423cjhgfwerwer23;

现在,无论何时发送消息,我们都可以获得带有接收者名称的socket.id:

为此,我们需要知道recievername.You需要向服务器发送接收者名称。

最后一件事是:

代码语言:javascript
复制
  socket.on('chat message', function(data){
 io.to(people[data.reciever]).emit('chat message', data.msg);
 });

希望这对你有用。!!祝你好运

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23619015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档