EventMachine ligará alegremente um servidor a uma porta efêmera quando você passar um número de porta zero para EM.start_server
.
sig = EM.start_server '127.0.0.1', 0, MyServer
No entanto , se você quiser saber em qual porta seu servidor está escutando agora, é um pouco mais complicado. Não há nenhum objeto de servidor em EventMachine, então você não pode simplesmente pedir sua porta. Esse sig
valor de retorno é, na verdade, um Fixnum
que faz referência a um descritor de arquivo.
Esta é a maneira de buscar o número da porta:
port = EM.Socket.unpack_sockaddr_in(
EM.get_sockname(signature)).first
Óbvio, hein?