Я новичок в Node и Redis, так что прости меня, если я что-то упустил здесь. Я пытаюсь сохранить объект Node.js net.Socket в Redis, используя клиент node_redis, чтобы я мог повторно использовать соединение, установленное ранее на этом сокете.
Я сохраняю сокет как Значение как часть набора «пользователи»:
client.sadd("users", username); //username is a string
client.hmset(username, "ip", socket.remoteAddress, "connection", net.Socket(socket));
В другой момент я получаю этот сокет как:
client.smembers("users", function(err, replies) {
replies.forEach(function(reply,i){
if(recipient == reply) { //recipient is the username i've got
client.hget(reply, "connection", function(err, obj) {
console.log("socket's remoteaddress = " + net.Socket(obj).remoteAddress);
net.Socket(obj).write("asdasdasd");
});
}
});
});
Но:
net.Socket (OBJ) .remoteAddress); зарегистрирован как «неопределенный».
Также,
net.Socket (OBJ) .WRITE ( "asdasdasd"); выдаёт мне ошибку и говорит:
Ошибка: этот сокет закрыт.
Так что я предполагаю, что мой вопрос - можете ли вы хранить сокеты таким образом в Redis и ожидать, что они будут работать после извлечения? Есть ли правильный / лучший способ сделать это?
P.S. Я попытался восстановить Socket без приведения к net.Socket, но он все равно ничего не дал.