Непризнанные параметры подключения к сети WebSocket, "агент", "perMessageDeflate", "pfx", "key", "passphrase"... Вы хотели поставить их под заголовками?

Вы когда-нибудь встречали это сообщение в приложении React Native с помощью WebSocket (SocketIOClient из "socket.io-client")?...

Unrecognized WebSocket connection option(s) 'agent', 'perMessageDeflate', 'pfx', 'key', 'passphrase', 'cert', 'ca', 'ciphers', 'rejectUnauthorized'. Did you mean to put these under 'headers'?

Ответы

Ответ 1

Да, это происходит в конструкторе класса WebSocket в Socket.io. Я думаю, что это происходит, когда вы указываете свой транспортный уровень как "websocket" в конструкторе (который необходим для использования React Native socket io). Он не делает ничего плохого, но раздражает. Вы можете избавиться от него с помощью реагирования YellowBox.ignoreWarnings: при YellowBox.ignoreWarnings приложения:

console.ignoredYellowBox = ['Remote debugger'];
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings([
    'Unrecognized WebSocket connection option(s) 'agent', 'perMessageDeflate', 'pfx', 'key', 'passphrase', 'cert', 'ca', 'ciphers', 'rejectUnauthorized'. Did you mean to put these under 'headers'?'
]);

Ответ 2

Один из способов устранить ошибку:

let socket = io.connect(SOCKET_URL, {
  timeout: 10000,
  jsonp: false,
  transports: [‘websocket],
  autoConnect: false,
  agent: ‘-,
  path: ‘/, // Whatever your path is
  pfx: ‘-,
  key: token, // Using token-based auth.
  passphrase: cookie, // Using cookie auth.
  cert: ‘-,
  ca: ‘-,
  ciphers: ‘-,
  rejectUnauthorized: ‘-,
  perMessageDeflate: ‘-
});