当前位置: 首页 > 面试题库 >

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

丰佐
2023-03-14
问题内容

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

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);

问题答案:

您必须与创建一个房间conversation_id并让用户订阅该房间,以便您可以向该房间发送私人消息,

客户

var socket = io.connect('http://ip:port');

socket.emit('subscribe', conversation_id);

socket.emit('send message', {
    room: conversation_id,
    message: "Some message"
});

socket.on('conversation private post', function(data) {
    //display data.message
});

服务器

socket.on('subscribe', function(room) {
    console.log('joining room', room);
    socket.join(room);
});

socket.on('send message', function(data) {
    console.log('sending room post', data.room);
    socket.broadcast.to(data.room).emit('conversation private post', {
        message: data.message
    });
});

以下是创建会议室,订阅会议室并将消息发送到会议室的文档和示例:

  1. Socket.io房间


 类似资料:
  • 本文向大家介绍Node.js中使用socket创建私聊和公聊聊天室,包括了Node.js中使用socket创建私聊和公聊聊天室的使用技巧和注意事项,需要的朋友参考一下 先给大家展示效果图: 在上篇文章给大家介绍使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室,本文继续介绍Node.js中使用socket创建私聊和公聊聊天室,具体详情请看下文吧。 nodejs的应用中,关于

  • 问题内容: 我的聊天应用程序遇到问题,我需要能够向特定用户发送私人消息,我可以选择该特定用户,但由于某些原因无法弄清楚如何发送私人消息。 在下面,您将找到我服务器的代码,请提供帮助: 问题答案: 首先在聊天室中添加用户,以便在您的私人聊天室中轻松找到用户 您用于加入私人会议室的客户端代码 Join Room 您在客户端的JavaScript代码 } 您的服务器端代码以在您的房间中添加用户 });

  • 问题内容: 我可以寻求您的帮助吗?我的代码不适用于使用socket.room创建房间,首先我已经声明了,我想创建房间并将创建的房间名称推送到。我的目标是允许用户创建自己的房间并在可能的情况下将其删除。我在这里使用了Michael Mukhin的代码作为参考。 这是我的server.js的代码 这是客户端index.html中的代码, 我想创建一个房间并将其添加到的列表中。 请帮助我已经阅读过soc

  • 根据给定的私钥生成密钥对,并在保存后返回其ID。 调用: web3.shh.addPrivateKey(privateKey, [callback]) 参数: privateKey:String - 要导入的私钥,16进制字符串 callback:Function - 可选的回调函数,其第一个参数为错误对象,第二个对象为返回结果 返回值: String - 成功时返回ID,失败则返回错误信息 示

  • 我在诺德吉斯和 socket.io 更新鲜。我正在尝试使用节点js,socket.io 和快速框架中的角js制作一个聊天应用程序。我缺乏如何私下执行聊天的基本想法,到目前为止,我的代码在一组连接的用户中聊天。这是我的服务器代码 我的主套接字文件包含如下代码: 我是abe加载所有登录我的应用程序的用户。我想要的就是点击可用并开始私信,到现在聊天是公开的,服务器中连接的每个人都可以看到消息。我的ang

  • 我是新来配置Jetty服务器的SSL。我按照digcert的步骤创建了私钥文件、证书请求CSR文件。 我向CA发送了证书请求,并拿回了我签名的CSR。但是CA给我发了一个有两个证书的捆绑包,一个是我的证书,由CA签名,第二个是CA证书。(1star_xyx_abc_comcrt文件,2.CRT文件)。现在我面临着从这些文件创建密钥库的麻烦。 当我按照Oracle文档的步骤4、5和6使用keytoo