Saltar al contenido

¿Qué es un multiplexor de solicitud http?

Lucas, miembro de este equipo, nos hizo el favor de redactar esta sección ya que domina perfectamente este tema.

Solución:

Desde net/http GoDoc y Fuente.

ListenAndServe starts an HTTP server with a given address and handler. The handler is usually nil, which means to use DefaultServeMux. Handle and HandleFunc add handlers to DefaultServeMux

DefaultServeMux es solo un predefinido http.ServeMux

var DefaultServeMux = &defaultServeMux
var defaultServeMux ServeMux

Como puedes ver http.Handle llamadas DefaultServeMux internamente.

func Handle(pattern string, handler Handler) DefaultServeMux.Handle(pattern, handler)

El propósito de http.NewServeMux() es tener tu propia instancia de http.ServerMux para casos como cuando necesita dos http.ListenAndServe funciones de escucha de diferentes puertos con diferentes rutas.

el multiplexor en Golang es algo así como un multiplexor en hardware que multiplica algunas entradas en algunas salidas

te di un ejemplo simple

type CustomMultiplexer struct 

el multiplexor dado tiene que implementar el ServeHTTP método para registrarse int http a las entradas del servidor

func (mux CustomMultiplexer) ServeHTTP(w http.ResponseWriter, r *http.Request) 
    if r.URL.Path == "/" 
        SimpleRequestHandler(w, r)
        return
    
    http.NotFound(w, r)
    return

mi SimpleRequestHandler es un método de la siguiente manera

func SimpleRequestHandler(w http.ResponseWriter, r *http.Request) 
    switch r.Method 
    case http.MethodGet:
        mySimpleGetRequestHandler(w, r)
        break
    default:
        http.Error(w, "method not allowed", http.StatusMethodNotAllowed)
        break
    

Sé que puedo usar mi CustomMultiplxere para hacer multiplexación entre solicitudes entrantes

func main() 
    customServer := CustomServer
    err := http.ListenAndServe(":9001", &customServer)
    if err != nil 
        panic(err)
    

los http.HandleFunc El método funciona como mi multiplexor simple dado.

Aquí tienes las comentarios y puntuaciones

Si te gustó nuestro trabajo, tienes la opción de dejar una reseña acerca de qué te ha parecido esta noticia.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *