2011-12-13 23 views
6

He leído que es posible compartir conectores entre procesos. ¿Esto también es posible en Node.js?node.js - compartir sockets entre procesos

Vi la aplicación cluster en node.js, pero eso no es lo que estoy buscando. Deseo poder aceptar una conexión en un proceso, tal vez enviar & leer un poco, y después de un tiempo pasar este socket a otro proceso node.js totalmente independiente.

Ya podía hacerlo con tuberías, pero no quiero hacerlo, ya que no es tan rápido como leer/escribir directamente en el zócalo.

¿Alguna idea?

actualización me encontré con la siguiente entrada en la documentación Node.js:

new net.Socket([options]) # 
Construct a new socket object. 

options is an object with the following defaults: 

{ fd: null 
    type: null 
    allowHalfOpen: false 
} 
fd allows you to specify the existing file descriptor of socket. type specified underlying protocol. It can be 'tcp4', 'tcp6', or 'unix'. About allowHalfOpen, refer to createServer() and 'end' event. 

Creo que sería posible establecer la propiedad "FD", en el descriptor de fichero del zócalo y luego abra la toma con eso. Pero ... ¿Cómo puedo obtener el descriptor de archivo del socket y pasarlo al proceso que lo necesita?

¡Gracias por cualquier ayuda!

+2

compartir un socket entre múltiples procesos es buscar la concurrencia y bloqueo pesadillas – Raynos

Respuesta

1

Esto no es posible por el momento, pero lo he agregado como una solicitud de función a la página de problemas del nodo.

Actualización Mientras tanto, he escrito un módulo para esto. Lo puedes encontrar aquí: https://github.com/VanCoding/node-ancillary

+0

¿Esto funciona con socket.io también? – InsOp

0

Es posible que desee echar un vistazo a hook.io

hook.io es una EventEmitter distribuido construido sobre node.js. Además de proporcionar un marco de eventos minimalista, hook.io también proporciona una amplia red de bibliotecas de enlaces para gestionar todo tipo de entradas y salidas.

+0

hook.io definitivamente no es la respuesta a esta pregunta, es mucho más que eso - y para muchas personas será demasiado más – Tom

+0

Tom, estuvo de acuerdo en que es mucho, pero debería haber muchos "ejemplos" que Van podría indagar en su implementación – Tristan

+1

Definitivamente parece ser un proyecto interesante, pero, en esencia, no es lo que quiero . Creo que también canalizan sus datos y no pueden compartir el mismo flujo/socket. –

Cuestiones relacionadas