Utilice un puerto efímero con el servidor socket.io

Estoy buscando una manera de iniciar un servidor socket.io con un puerto efímero. ¿Cómo puedo obtener un puerto efímero con el servidor socket.io?

Quizás todo lo que necesito hacer es:

const Server = require('socket.io); const s = new Server('http://localhost'); 

Tal vez eso usará un puerto efímero, como es?

así, ¿cómo puedo recuperar el puerto que encontró socket.io?

Su código de ejemplo solo usaría el puerto socket.io predeterminado que creo que es 8080

Mi sugerencia sería simplemente seleccionar un número de puerto al azar que esté dentro del rango efímero o un rango que usted defina, y luego usar esta biblioteca para verificar si está disponible o no. https://github.com/indexzero/node-portfinder

También puede simplemente pasar por los puertos en un bucle para intentar obtener el más bajo disponible para enlazar. Use portfinder para asegurarse de que esté disponible y luego use eso.

Esto también tiene la ventaja secundaria de poder decirle qué puerto se usó.