|
@@ -18,7 +18,9 @@ import (
|
|
|
|
|
|
// FlowServer structure
|
|
|
type FlowServer struct {
|
|
|
- mux *http.ServeMux
|
|
|
+ //mux *http.ServeMux
|
|
|
+ sessionHandler http.Handler
|
|
|
+ staticHandler http.Handler
|
|
|
}
|
|
|
|
|
|
// New creates a New flow server
|
|
@@ -26,8 +28,10 @@ func New(r *registry.R, store string) *FlowServer {
|
|
|
if r == nil {
|
|
|
r = registry.Global.Clone()
|
|
|
}
|
|
|
- mux := http.NewServeMux()
|
|
|
- mux.Handle("/conn", NewFlowSessionManager(r, store))
|
|
|
+ var sessionHandler http.Handler
|
|
|
+ var staticHandler http.Handler
|
|
|
+
|
|
|
+ sessionHandler = NewFlowSessionManager(r, store)
|
|
|
|
|
|
if os.Getenv("DEBUG") == "1" {
|
|
|
log.Println("DEBUG MODE: reverse proxy localhost:8081")
|
|
@@ -38,16 +42,34 @@ func New(r *registry.R, store string) *FlowServer {
|
|
|
|
|
|
rp := httputil.NewSingleHostReverseProxy(proxyURL)
|
|
|
rp.ErrorLog = prettylog.New("rproxy")
|
|
|
- mux.Handle("/", rp)
|
|
|
+ staticHandler = rp
|
|
|
} else {
|
|
|
- mux.Handle("/", webu.StaticHandler("web", "index.html"))
|
|
|
+ staticHandler = webu.StaticHandler("web", "index.html")
|
|
|
}
|
|
|
|
|
|
- return &FlowServer{mux}
|
|
|
+ /*mux := http.NewServeMux()
|
|
|
+ mux.Handle("/conn", sessionHandler)
|
|
|
+ mux.Handle("/", staticHandler)*/
|
|
|
+
|
|
|
+ return &FlowServer{
|
|
|
+ sessionHandler: sessionHandler,
|
|
|
+ staticHandler: staticHandler,
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
func (f *FlowServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
|
- f.mux.ServeHTTP(w, r)
|
|
|
+ log.Println("Requesting for:", r.URL)
|
|
|
+
|
|
|
+ // Manual routing
|
|
|
+ switch r.URL.Path {
|
|
|
+ case "/conn":
|
|
|
+ f.sessionHandler.ServeHTTP(w, r)
|
|
|
+ default:
|
|
|
+ f.staticHandler.ServeHTTP(w, r)
|
|
|
+ }
|
|
|
+ //handler, _ := f.mux.Handler(r)
|
|
|
+ //handler.ServeHTTP(w, r)
|
|
|
+ //f.mux.ServeHTTP(w, r)
|
|
|
// Manual routing here
|
|
|
// Grab last part of path
|
|
|
/*prefixToRemove := ""
|
|
@@ -66,5 +88,5 @@ func (f *FlowServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
|
// ListenAndServe starts the httpserver
|
|
|
// It will listen on default port 2015 and increase if port is in use
|
|
|
func (f *FlowServer) ListenAndServe(addr string) error {
|
|
|
- return http.ListenAndServe(addr, f.mux)
|
|
|
+ return http.ListenAndServe(addr, f)
|
|
|
}
|