getSocketWithDataChannel (type, filter) {
    return this._sockets.find(s => {
      const subI = s.pendingSubscriptions.findIndex(s => (
        s[0] === type && _isEqual(s[1], filter)
      ))

      if (subI !== -1) {
        return true
      }

      // Confirm unsub is not pending
      const cid = s.ws.getDataChannelId(type, filter)

      if (!cid) {
        return false
      }

      return cid && !_includes(s.pendingUnsubscriptions, cid)
    })
  }
Returns the first socket that is subscribed/pending sub to the specified
channel.

@param {string} type - i.e. 'book'
@param {object} filter - i.e. { symbol: 'tBTCUSD', prec: 'R0' }
@returns {object} wsState - undefined if not found