1
User1とUser2の2人のユーザーが登録されていて、両方がシステムにログインしているとしたら、User1はUser2にメッセージを送信します。 User2の接続、およびUser2がUser1のにメッセージを送りたいとき、私は、これはUser1が接続されていないその通知得るが、それらの両方のユーザーが接続されている、Nodejsはオーナーのメッセージ送信者にメッセージを送信することができます
今
- User1は自分だけ にメッセージを送信することができません
- User2は自分自身にメッセージを送ることができます
しかし、彼らは他のユーザーにメッセージを送信できませんでした
var socket = require('socket.io'),
express = require('express'),
app = express(),
server = require('http').createServer(app),
io = socket.listen(server),
port = process.env.PORT || 3000,
redis = require("redis"),
redisClient = redis.createClient();
var io_redis = require('socket.io-redis');
io.adapter(io_redis({host: 'localhost', port: 6379}));
require('sticky-socket-cluster/replace-console')();
var options = {
workers : require('os').cpus().length,
first_port : 8000,
proxy_port : 3000,
session_hash: function (req, res) {
return req.connection.remoteAddress;
},
no_sockets: false
};
require('sticky-socket-cluster')(options, start);
function start(port) {
io.sockets.on('connection', function (socket) {
socket.on('login', function (data) {
console.log(data.username);
login(data.username, data.password, function (success, value) {
if (success) {
redisClient.exists(data.username, function (err, doesExist) {
if (err) return;
if (!doesExist) {
redisClient.set(data.username, socket.id, function (err, res) {
redisClient.set(data.username, socket.id);
});
}
else {
redisClient.del(data.username);
redisClient.set(data.username, socket.id, function (err, res) {
redisClient.set(data.username, socket.id);
});
}
});
socket.emit('login', {result: true, id: value});
} else {
socket.emit('login', {result: false});
}
});
});
socket.on('requestMoney', function (data) {
redisClient.get(data.fromUsername, function (err, socketId) {
if (io.sockets.connected[socketId]) {
log.info('message to '+ data.fromUsername + ' sent');
io.sockets.connected[socketId].emit('message', {message: 'Hey !!'});
} else {
log.info(data.fromUsername + ' NOT Login');
}
});
});
});
server.listen(port, function() {
console.log('Express and socket.io listening on port ' + port);
});
}
についてのことをもっと知りたい@Tomああ男!あなたの場合の問題は何ですか? –