_hasPingExpired() {
    if (!this._pingTimeoutTime)
      return true;
    const hasExpired = Date.now() > this._pingTimeoutTime;
    if (hasExpired) {
      this._pingTimeoutTime = 0;
      nextTick(() => {
        this._onClose("ping timeout");
      }, this.setTimeoutFn);
    }
    return hasExpired;
  }
Checks whether the heartbeat timer has expired but the socket has not yet been notified.

Note: this method is private for now because it does not really fit the WebSocket API, but if we put it in the
`write()` method then the message would not be buffered by the Socket.IO client.

@return {boolean}
@private