Всем привет. На днях захотел сделать приложение, которое имело возможность обмениваться сообщениями с пользователями. Суть этого приложения состоит в том, что пользователь регистрируется, у него профиль, а в его профиле
можно написать открытое сообщение любым авторизованным пользователям. Все страницы сверстал, все сообщения отправляются в БД через ajax, вообщем всё как надо. Не так давно начал изучать nodejs. И захотел, чтобы сообщения приходили в реальном времени. Для этого стал использовать sockjs. И написал server.js:
var http = require('http');
var sockjs = require('sockjs');
var clients = {};
// Broadcast to all clients
function broadcast(){
// iterate through each client in clients object
for (var client in clients){
// send the message to that client
clients[client].write(null);
}
};
// create sockjs server
var echo = sockjs.createServer();
// on new connection event
echo.on('connection', function(conn) {
// add this client to clients object
clients[conn.id] = conn;
// on receive new data from client event
conn.on('data', function() {
broadcast();
console.log('');
});
// on connection close event
conn.on('close', function() {
delete clients[conn.id];
});
});
// Create an http server
var server = http.createServer();
// Integrate SockJS and listen on /echo
echo.installHandlers(server, {prefix:'/echo'});
// Start server
server.listen(3333, '0.0.0.0');
И в обыкновенном js файле прописал следующий код:
var sock = new SockJS('http://localhost:3333/echo');
// Open the connection
sock.onopen = function() {
console.log('open');
};
// On connection close
sock.onclose = function() {
console.log('close');
};
sock.onmessage = function(e) {
var parentElem = document.getElementById('main');
var newDiv = document.createElement('div');
getMessage(getXmlHttp(), document.getElementById('message'), document.querySelector('.login'));
parentElem.insertBefore(newDiv, parentElem.firstChild);
};
В итоге получается, что у меня сообщения отправляются ко всем авторизованным пользователям. А надо чтобы сообщения отправлялись к данному пользователю. Например, мы находимся на localhost/chat/?user=leha .и мы отправляем ему сообщение,но получается так, что мы отправляем сообщения всем пользователям, которые находятся на странице localhost/chat/ в данное время. Если есть какие-нибудь предложения, можно направить ссылками или подсказками.
Спасибо, skver91