private chat mit sockel.io

Ich habe Probleme mit meinem chat-app, die ich brauche, um in der Lage sein senden Sie eine private Nachricht an einen bestimmten Benutzer, ich war in der Lage zu wählen, die bestimmte Benutzer, aber aus irgendeinem Grund konnte nicht herausfinden, wie zu senden Sie die private Nachricht.

Unten finden Sie den code für mein server bitte um Hilfe:

JS:

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 = [],
	connections = [];
var onlineClients = {};




//Register events on socket connection
io.on('connection', function(socket){ 
	connections.push(socket);
	//console.log("connected socket", connections);

	socket.on("disconnect", function() {
		users.splice(users.indexOf(socket.username), 1);
		updateUsernames();
		connections.splice(connections.indexOf(socket), 1);
		console.log("disconnected socket", connections.length)
	});

	socket.on("send message", function(data) {
		//console.log(data);
		io.emit("new message", {msg: data, user: socket.username});
	});


	socket.on("notify user", function(data) {
		io.emit("notify user", {user: socket.username})
	});


	socket.on("new user", function(data) {
		socket.username = data;
		users.push(socket.username);
		updateUsernames();

	});

	function updateUsernames() {
		io.emit("get users", users);
	};

	socket.on("private", function(data, recipientName) {
		var recipient = connections.filter(function (recipient) {
			return recipient.username === recipientName;
		})[0];
			console.log(recipient.id);
			console.log(data);
		io.sockets.socket(recipient.id).emit("received private msg", data);

	});


	//socket.on("create room", function(room) {
	//	socket.join(room);
	//	io.sockets.in(room).emit('event', "hey wusup am in this room");
	//	console.log(socket);

	//})

});

http.listen(PORT, function(){
  console.log('Server started on port ' + PORT);
});

  • machen Sie sich ein eigenes Zimmer, dann senden Sie Nachricht an ein particuler der Benutzer in diesem Raum
  • Kunden nur sendet eine Nachricht an den server. Wenn Sie möchten, dass der client eine Nachricht an einen bestimmten user, dann schicken Sie eine Nachricht an den server und sagen Sie dem server, der Benutzer, den Sie möchten, dass der server, um es zu liefern.
InformationsquelleAutor cickStar | 2016-11-29
Schreibe einen Kommentar