Index: pkg/shelf_web_socket/lib/src/web_socket_handler.dart |
diff --git a/pkg/shelf_web_socket/lib/src/web_socket_handler.dart b/pkg/shelf_web_socket/lib/src/web_socket_handler.dart |
index ac5786a95cadb14f5518c0e35634a33ecb7df75f..7ab8e7eb9764b20c8a77453ba3b9b2c5b8646afd 100644 |
--- a/pkg/shelf_web_socket/lib/src/web_socket_handler.dart |
+++ b/pkg/shelf_web_socket/lib/src/web_socket_handler.dart |
@@ -28,7 +28,9 @@ class WebSocketHandler { |
var connection = request.headers['Connection']; |
if (connection == null) return _notFound(); |
- if (connection.toLowerCase() != 'upgrade') return _notFound(); |
+ var tokens = connection.toLowerCase().split(',') |
+ .map((token) => token.trim()); |
+ if (!tokens.contains('upgrade')) return _notFound(); |
var upgrade = request.headers['Upgrade']; |
if (upgrade == null) return _notFound(); |