diff --git a/websocket_server.go b/websocket_server.go
index 843bb2ad6a04c14bd5db6f94e9fc6e70caaf50c7..e66c73324e64d64b37c6c5a360136356fbc9cbfd 100644
--- a/websocket_server.go
+++ b/websocket_server.go
@@ -10,26 +10,26 @@ type WebsocketServer struct {
 }
 
 func (s *WebsocketServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
-	if isWebsocket(r) {
+	if IsWebsocket(r) {
 		s.s.WebsocketHandler([]string{"*"}).ServeHTTP(w, r)
 		return
 	}
 	s.s.ServeHTTP(w, r)
 }
 
-func isWebsocket(r *http.Request) bool {
+func IsWebsocket(r *http.Request) bool {
 	return strings.EqualFold(r.Header.Get("Upgrade"), "websocket") &&
 		strings.Contains(strings.ToLower(r.Header.Get("Connection")), "upgrade")
 }
 
 func (s *Server) ServeHTTPWithWss(cb func(w http.ResponseWriter, r *http.Request) bool) http.Handler {
 	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-		if isWebsocket(r) {
-			if cb != nil {
-				if cb(w, r) {
-					return
-				}
+		if cb != nil {
+			if cb(w, r) {
+				return
 			}
+		}
+		if IsWebsocket(r) {
 			s.WebsocketHandler([]string{"*"}).ServeHTTP(w, r)
 			return
 		}