Специфический 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) { }
}
...
- Я понимаю, что веб-сокет Firefox называется
MozWebSocket
- 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, так откуда этот код?