如何使用node.js和socket.io向共享conversation_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);
发布于 2016-10-24 21:21:51
当然:简单地说,
这就是你所需要的:
io.to(socket.id).emit("event", data);
当用户加入服务器时,将生成套接字详细信息,包括ID.This ID,这有助于向特定人员发送消息。
首先我们需要将所有的socket.ids存储在数组中,
var people={};
people[name] = socket.id;
这里的name是接收者的名字。示例:
people["ccccc"]=2387423cjhgfwerwer23;
现在,无论何时发送消息,我们都可以获得带有接收者名称的socket.id:
为此,我们需要知道recievername.You需要向服务器发送接收者名称。
最后一件事是:
socket.on('chat message', function(data){
io.to(people[data.reciever]).emit('chat message', data.msg);
});
希望这对你有用。!!祝你好运
https://stackoverflow.com/questions/23619015
复制相似问题