Skip to content

Commit

Permalink
Log Abnormal Closes to Metro Websocket
Browse files Browse the repository at this point in the history
Summary:
We are running into a group seeing frequent disconnects from Metro in a specific office. These are surfaced (at least on iOS) as websocket closures, without a prior websocket error. WebSocket closure can be for a variety of reasons, and the spec for a CloseEvent is to include fields `wasClean`, `code`, and `reason`, with `code` having the most well-defined meaning.

This change makes it so that we emit extra context when the websocket is closed. That should help inform developers the reason behind any close that may be abnormal.

Changelog:
[General][Added] - Log Abnormal Closes to Metro Websocket

Reviewed By: motiz88

Differential Revision: D40660765

fbshipit-source-id: ef606d8d809af1c697a78eb00cc5666c29a8bca3
  • Loading branch information
NickGerleman authored and facebook-github-bot committed Oct 27, 2022
1 parent e483674 commit d54986c
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions packages/metro-runtime/src/modules/HMRClient.js
Expand Up @@ -55,9 +55,9 @@ class HMRClient extends EventEmitter {
this._ws.onerror = error => {
this.emit('connection-error', error);
};
this._ws.onclose = () => {
this._ws.onclose = closeEvent => {
this._state = 'closed';
this.emit('close');
this.emit('close', closeEvent);
};
this._ws.onmessage = message => {
const data: HmrMessage = JSON.parse(String(message.data));
Expand Down

0 comments on commit d54986c

Please sign in to comment.