@@ -271,13 +271,14 @@ <h3><a id="configure-cable-settings" class="anchor" href="#configure-cable-setti
271271 settings.backend_class < span class ="o "> =</ span > < span class ="t "> Cable</ span > < span class ="t "> ::</ span > < span class ="t "> RedisBackend</ span >
272272 settings.backend_ping_interval < span class ="o "> =</ span > < span class ="n "> 15</ span > .seconds
273273 settings.restart_error_allowance < span class ="o "> =</ span > < span class ="n "> 20</ span >
274- settings.on_error < span class ="o "> =</ span > < span class ="o "> -></ span > (error : < span class ="t "> Exception</ span > , message : < span class ="t "> String</ span > ) < span class ="k "> do</ span >
274+ settings.on_error < span class ="o "> =</ span > < span class ="o "> -></ span > (error : < span class ="t "> Exception</ span > , message : < span class ="t "> String</ span > , connection : < span class =" t " > Cable </ span > < span class =" t " > :: </ span > < span class =" t " > Connection </ span > ? ) < span class ="k "> do</ span >
275275 < span class ="c "> # or whichever error reportings you're using</ span >
276276 < span class ="t "> Bugsnag</ span > .report(error) < span class ="k "> do</ span > < span class ="o "> |</ span > event< span class ="o "> |</ span >
277277 event.app.app_type < span class ="o "> =</ span > < span class ="s "> "lucky"</ span >
278278 event.meta_data < span class ="o "> =</ span > {
279279 < span class ="s "> "error_class"</ span > < span class ="o "> =></ span > < span class ="t "> JSON</ span > < span class ="t "> ::</ span > < span class ="t "> Any</ span > .new(error.< span class ="k "> class</ span > .name),
280280 < span class ="s "> "message"</ span > < span class ="o "> =></ span > < span class ="t "> JSON</ span > < span class ="t "> ::</ span > < span class ="t "> Any</ span > .new(message),
281+ < span class ="s "> "token"</ span > < span class ="o "> =></ span > < span class ="t "> JSON</ span > < span class ="t "> ::</ span > < span class ="t "> Any</ span > .new(connection.try(< span class ="o "> &</ span > .token).to_s),
281282 }
282283 < span class ="k "> end</ span >
283284 < span class ="k "> end</ span >
@@ -444,7 +445,7 @@ <h2><a id="error-handling" class="anchor" href="#error-handling">
444445< p > You can setup a hook to report errors to any 3rd party service you choose.</ p >
445446< pre > < code class ="language-crystal "> < span class ="c "> # config/cable.cr</ span >
446447< span class ="t "> Cable</ span > .configure < span class ="k "> do</ span > < span class ="o "> |</ span > settings< span class ="o "> |</ span >
447- settings.on_error < span class ="o "> =</ span > < span class ="o "> -></ span > (exception : < span class ="t "> Exception</ span > , message : < span class ="t "> String</ span > ) < span class ="k "> do</ span >
448+ settings.on_error < span class ="o "> =</ span > < span class ="o "> -></ span > (exception : < span class ="t "> Exception</ span > , message : < span class ="t "> String</ span > , connection : < span class =" t " > Cable </ span > < span class =" t " > :: </ span > < span class =" t " > Connection </ span > ? ) < span class ="k "> do</ span >
448449 < span class ="c "> # new 3rd part service handler</ span >
449450 < span class ="t "> ExceptionService</ span > .notify(exception, message: message)
450451 < span class ="c "> # default logic</ span >
@@ -453,12 +454,12 @@ <h2><a id="error-handling" class="anchor" href="#error-handling">
453454< span class ="k "> end</ span > </ code > </ pre >
454455< p > < strong > Default Handler</ strong > </ p >
455456< pre > < code class ="language-crystal "> < span class ="t "> Habitat</ span > .create < span class ="k "> do</ span >
456- setting on_error : < span class ="t "> Proc</ span > (< span class ="t "> Exception</ span > , < span class ="t "> String</ span > , < span class ="t "> Nil</ span > ) < span class ="o "> =</ span > < span class ="o "> -></ span > (exception : < span class ="t "> Exception</ span > , message : < span class ="t "> String</ span > ) < span class ="k "> do</ span >
457+ setting on_error : < span class ="t "> Proc</ span > (< span class ="t "> Exception</ span > , < span class ="t "> String</ span > , < span class ="t "> Cable </ span > < span class =" t " > :: </ span > < span class =" t " > Connection </ span > ?, < span class =" t " > Nil</ span > ) < span class ="o "> =</ span > < span class ="o "> -></ span > (exception : < span class ="t "> Exception</ span > , message : < span class ="t "> String</ span > , connection : < span class =" t " > Cable </ span > < span class =" t " > :: </ span > < span class =" t " > Connection </ span > ? ) < span class ="k "> do</ span >
457458 < span class ="t "> Cable</ span > < span class ="t "> ::</ span > < span class ="t "> Logger</ span > .error(exception: exception) { message }
458459 < span class ="k "> end</ span >
459460< span class ="k "> end</ span > </ code > </ pre >
460461< blockquote >
461- < p > < span class ="flag purple "> NOTE</ span > The message field will contain details regarding which class/method raised the error</ p >
462+ < p > < span class ="flag purple "> NOTE</ span > The message field will contain details regarding which class/method raised the error. The connection parameter provides access to the < code > < a href =" Cable/Connection.html " > Cable::Connection </ a > </ code > instance (when available), including the < code > token </ code > , < code > connection_identifier </ code > , and any fields defined via < code > identified_by </ code > or < code > owned_by </ code > . </ p >
462463</ blockquote >
463464< h2 > < a id ="client-side " class ="anchor " href ="#client-side ">
464465 < svg class ="octicon-link " aria-hidden ="true ">
0 commit comments