Yo hice algo parecido utilizando socket.io y nodeJS. Tendrías que utilizar callbacks, que es un poco rollo pero funciona.
Llamadas del cliente:
Código Javascript
:
Ver original/////////////////////////////////////////////////////////////////////////////////////////
function callbackGENERAL(data) {
console.log("callbackGENERAL() LLAMADO ");
if (gancho == null) {
console.log("callbackGENERAL(): nadie a quien llamar");
return;
}
console.log("callbackGENERAL(): sí llamo a alguien: ");
gancho(data.respuesta_emit); //emito la respuesta del metodo que ha llamado
gancho = null; //lo vacio para que pueda ser llamado por otro metodo
}
/////////////////////////////////////////////////////////////////////////////////////////
function consultar_loquesea(loquesea_consulta, callback) {
gancho = callback;
socket.emit('consultar_loquesea', {
"loquesea_consulta": loquesea_consulta
});
} //consultar_loquesea()
//socket.on
socket.on('respuesta_consultar_loquesea', callbackGENERAL);
/////////////////////////////////////////////////////////////////////////////////////////
Parte de servidor:
Código Javascript
:
Ver original//Recibo una consulta de loquesea
socket.on('consultar_loquesea', function (data) {
//Aviso
console.log("Servidor(): Conexion (consultar_loquesea) Recibida.");
//Le hago la consulta.
data.loquesea_consulta // Aquí está la petición, en tu caso un "id"
//Hago la consulta a quien se la tenga que hacer
//Genero una respuesta
//Respondo a la peticion
socket.emit('respuesta_consultar_loquesea', {
"respuesta_emit": respuesta
});
}); //socket.on
Espero que te sirva.
Un saludo!