Как socket.io-client генерирует код браузера, связанный с Websocket? - PullRequest
0 голосов
/ 16 апреля 2020

Специфический c вопрос от https://github.com/socketio/socket.io-client/blob/master/dist/socket.io.slim.dev.js

var BrowserWebSocket, NodeWebSocket;

if (typeof WebSocket !== 'undefined') {
  BrowserWebSocket = WebSocket;
} else if (typeof self !== 'undefined') {
  BrowserWebSocket = self.WebSocket || self.MozWebSocket;
}

if (typeof window === 'undefined') {
  try {
    NodeWebSocket = require('ws');
  } catch (e) { }
}
...
  1. Я понимаю, что веб-сокет Firefox называется MozWebSocket
  2. I думаю, что использование if (typeof self !== 'undefined') вместо if (typeof window !== 'undefined') - это проверка окна и веб-работника (отсюда https://developer.mozilla.org/en-US/docs/Web/API/Window/self)

Чего я не понимаю, так это возможности столкнуться с BrowserWebSocket = self.WebSocket, то есть typeof WebSocket == 'undefined', но self.WebSocket существует?

Мой второй вопрос: как socket.io-client генерирует код браузера, связанный с Websocket? Я искал исходный код socket.io-client & socket.io, но не могу найти коды о браузере Websocket, так откуда этот код?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...