import {io} from 'socket.io-client'; import { Provider } from './provider' import { detect } from 'detect-browser' const device = detect(); export class SocketIOProvider implements Provider { constructor(connectionString: string) { Provider.connectionString = connectionString; Provider.CurrentConnection = io(connectionString, { transports: this.transport(), upgrade: true }) // logs error // Provider.CurrentConnection.on('connect_error', (err: any) => console.log(err)); // Provider.CurrentConnection.on('connect_failed', (err: any) => console.log(err)); // Provider.CurrentConnection.on('disconnect', (err: any) => console.log(err)); } transport() { let transports = [] if (typeof window !== undefined) { transports = ["websocket"] } if (typeof module !== 'undefined' && module.exports) { transports = ["websocket"] } else { transports = ["websocket"] } if (device?.type == "browser") { transports = ["websocket"] } return transports } }