@@ -24,6 +24,90 @@ import { useIsEventStreamInstalled } from "./useIsEventStreamInstalled";
2424
2525dayjs . extend ( utc ) ;
2626
27+ /**
28+ * Logs WebSocket connection open event
29+ */
30+ const logWebSocketOpen = ( ) => {
31+ console . log ( "[EventStream] WebSocket connection opened successfully" ) ;
32+ } ;
33+
34+ /**
35+ * Logs detailed WebSocket close event information
36+ */
37+ const logWebSocketClose = ( event : CloseEvent ) => {
38+ const closeInfo = {
39+ code : event . code ,
40+ reason : event . reason || "No reason provided" ,
41+ wasClean : event . wasClean ,
42+ timestamp : new Date ( ) . toISOString ( ) ,
43+ } ;
44+
45+ console . log ( "[EventStream] WebSocket connection closed:" , closeInfo ) ;
46+
47+ // Log specific close codes for debugging
48+ switch ( event . code ) {
49+ case 1000 :
50+ console . log ( "[EventStream] Normal closure - connection completed successfully" ) ;
51+ break ;
52+ case 1001 :
53+ console . log ( "[EventStream] Going away - server is shutting down or client navigating away" ) ;
54+ break ;
55+ case 1002 :
56+ console . log ( "[EventStream] Protocol error - invalid data received" ) ;
57+ break ;
58+ case 1003 :
59+ console . log ( "[EventStream] Unsupported data - received data type not supported" ) ;
60+ break ;
61+ case 1005 :
62+ console . log ( "[EventStream] No status received - no close code provided" ) ;
63+ break ;
64+ case 1006 :
65+ console . log ( "[EventStream] Abnormal closure - connection lost without close frame" ) ;
66+ break ;
67+ case 1007 :
68+ console . log ( "[EventStream] Invalid frame payload data - received inconsistent data" ) ;
69+ break ;
70+ case 1008 :
71+ console . log ( "[EventStream] Policy violation - message violates server policy" ) ;
72+ break ;
73+ case 1009 :
74+ console . log ( "[EventStream] Message too big - message exceeds size limit" ) ;
75+ break ;
76+ case 1010 :
77+ console . log ( "[EventStream] Client error - client terminated connection" ) ;
78+ break ;
79+ case 1011 :
80+ console . log ( "[EventStream] Server error - server encountered error" ) ;
81+ break ;
82+ case 1012 :
83+ console . log ( "[EventStream] Service restart - server restarting" ) ;
84+ break ;
85+ case 1013 :
86+ console . log ( "[EventStream] Try again later - temporary server condition" ) ;
87+ break ;
88+ case 1014 :
89+ console . log ( "[EventStream] Bad gateway - invalid response from upstream" ) ;
90+ break ;
91+ case 1015 :
92+ console . log ( "[EventStream] TLS handshake - TLS handshake failed" ) ;
93+ break ;
94+ default :
95+ console . log ( `[EventStream] Unknown close code: ${ event . code } ` ) ;
96+ }
97+ } ;
98+
99+ /**
100+ * Logs WebSocket error event details
101+ */
102+ const logWebSocketError = ( error : Event ) => {
103+ console . error ( "[EventStream] WebSocket connection error:" , error ) ;
104+ console . error ( "[EventStream] Error details:" , {
105+ type : error . type ,
106+ target : error . target ,
107+ timestamp : new Date ( ) . toISOString ( ) ,
108+ } ) ;
109+ } ;
110+
27111/**
28112 * Builds WebSocket URL
29113 */
@@ -80,6 +164,7 @@ export const EventStream = () => {
80164 ) ;
81165
82166 const handleWebSocketOpen = useCallback ( ( ) => {
167+ logWebSocketOpen ( ) ;
83168 enqueueSnackbar ( "Connected to event stream" , {
84169 variant : "success" ,
85170 anchorOrigin : { horizontal : "right" , vertical : "bottom" } ,
@@ -88,6 +173,8 @@ export const EventStream = () => {
88173
89174 const handleWebSocketClose = useCallback (
90175 ( event : CloseEvent ) => {
176+ logWebSocketClose ( event ) ;
177+
91178 const message = event . wasClean
92179 ? "Disconnected from event stream"
93180 : "Event stream disconnected unexpectedly. Attempting to reconnect..." ;
@@ -100,12 +187,17 @@ export const EventStream = () => {
100187 [ enqueueSnackbar ] ,
101188 ) ;
102189
103- const handleWebSocketError = useCallback ( ( ) => {
104- enqueueSnackbar ( "Event stream connection error. Reconnection attempts may follow." , {
105- variant : "error" ,
106- anchorOrigin : { horizontal : "right" , vertical : "bottom" } ,
107- } ) ;
108- } , [ enqueueSnackbar ] ) ;
190+ const handleWebSocketError = useCallback (
191+ ( error : Event ) => {
192+ logWebSocketError ( error ) ;
193+
194+ enqueueSnackbar ( "Event stream connection error. Reconnection attempts may follow." , {
195+ variant : "error" ,
196+ anchorOrigin : { horizontal : "right" , vertical : "bottom" } ,
197+ } ) ;
198+ } ,
199+ [ enqueueSnackbar ] ,
200+ ) ;
109201
110202 // Build WebSocket URL
111203 const wsUrl = eventStreamEnabled && asRole && location ? buildWebSocketUrl ( location ) : null ;
0 commit comments