我在使用我的聊天应用程序时遇到问题,我需要能够向特定用户发送私人消息,我可以选择特定的用户,但由于某种原因无法找到了解如何发送私人消息。与socket.io的私人聊天
下面你会发现我的服务器代码,请大家帮忙:
var express = require('express');
var app = express();
var PORT = process.env.PORT || 8000;
var http = require('http').Server(app); // this is a node server that uses express as the boiler plate
var io = require('socket.io')(http); // socket! pass our server as a parameter to it
// use express static to expose a folder
app.use(express.static(__dirname + '/public'));
var users = [],
\t connections = [];
var onlineClients = {};
// Register events on socket connection
io.on('connection', function(socket){
\t connections.push(socket);
\t // console.log("connected socket", connections);
\t socket.on("disconnect", function() {
\t \t users.splice(users.indexOf(socket.username), 1);
\t \t updateUsernames();
\t \t connections.splice(connections.indexOf(socket), 1);
\t \t console.log("disconnected socket", connections.length)
\t });
\t socket.on("send message", function(data) {
\t \t // console.log(data);
\t \t io.emit("new message", {msg: data, user: socket.username});
\t });
\t socket.on("notify user", function(data) {
\t \t io.emit("notify user", {user: socket.username})
\t });
\t socket.on("new user", function(data) {
\t \t socket.username = data;
\t \t users.push(socket.username);
\t \t updateUsernames();
\t });
\t function updateUsernames() {
\t \t io.emit("get users", users);
\t };
\t socket.on("private", function(data, recipientName) {
\t \t var recipient = connections.filter(function (recipient) {
\t \t \t return recipient.username === recipientName;
\t \t })[0];
\t \t \t console.log(recipient.id);
\t \t \t console.log(data);
\t \t io.sockets.socket(recipient.id).emit("received private msg", data);
\t });
\t // socket.on("create room", function(room) {
\t // \t socket.join(room);
\t // \t io.sockets.in(room).emit('event', "hey wusup am in this room");
\t // \t console.log(socket);
\t // })
});
http.listen(PORT, function(){
console.log('Server started on port ' + PORT);
});
做一个私人房间,然后将消息发送给该房间内的某个用户 – Adiii
客户端只向服务器发送消息。如果您希望客户端向特定用户发送消息,那么您会向服务器发送消息,并告诉服务器您希望服务器将其提供给哪个用户。 – jfriend00