diff --git a/http.go b/http.go
index 4f60202545b3ce5a87e590c392829aa6482679bb..b8ba46906faf0c5334525db8f70cdd151a6c9890 100644
--- a/http.go
+++ b/http.go
@@ -362,6 +362,9 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 	if connInfo.HTTP.Origin == "" {
 		connInfo.HTTP.Origin = r.Header.Get("Origin")
 	}
+	if connInfo.HTTP.Origin == "" {
+		connInfo.HTTP.Origin = r.RemoteAddr
+	}
 	// the headers used
 	connInfo.HTTP.Headers = r.Header
 
diff --git a/websocket.go b/websocket.go
index d34cd7900bf15ab8d936ad2f0f72cb434b677da3..221e75fae7b079fe3b6046536dfbfd2fbf917e5b 100644
--- a/websocket.go
+++ b/websocket.go
@@ -181,6 +181,9 @@ func newWebsocketCodec(ctx context.Context, c *websocket.Conn, host string, req
 	if wc.info.HTTP.Origin == "" {
 		wc.info.HTTP.Origin = req.Get("origin")
 	}
+	if wc.info.HTTP.Origin == "" {
+		wc.info.HTTP.Origin = req.
+	}
 	wc.info.RemoteAddr = wc.info.HTTP.Origin
 	wc.info.HTTP.UserAgent = req.Get("User-Agent")
 	wc.info.HTTP.Headers = req