You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Client.ts 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { Socket } from "socket.io"
  2. import * as U from '../Utils'
  3. import * as I from '../Interfaces'
  4. import * as socketio from 'socket.io-client'
  5. export class PromiseIOClient {
  6. static connect = (port: number, host = "localhost", protocol : 'http' | 'https' = "http"): Promise<I.Socket> => new Promise((res, rej) => {
  7. try {
  8. const address = `${host}:${port}`
  9. const socket = socketio(`${protocol}://${address}`, {
  10. reconnectionAttempts: 2,
  11. reconnectionDelay: 200,
  12. timeout: 450,
  13. reconnection: false,
  14. })
  15. socket.on('connect_error', e => {
  16. sock.emit('error', e)
  17. rej(e)
  18. })
  19. socket['address'] = address
  20. const sock = U.makePioSocket(socket)
  21. socket.on('connect', ()=>{
  22. res(sock)
  23. })
  24. /*
  25. socket.on('connect_timeout', ()=>console.log('connect_timeout'))
  26. socket.on('disconnect', ()=>console.log('disconnect'))
  27. socket.on('reconnect', ()=>console.log('reconnect'))
  28. socket.on('reconnect_attempt', ()=>console.log('reconnect_attempt'))
  29. socket.on('reconnecting', ()=>console.log('reconnecting'));
  30. socket.on('reconnect_failed', ()=>console.log('reconnect_failed'));
  31. socket.on('reconnecting', ()=>console.log('reconnecting'));
  32. */
  33. } catch (e) {
  34. rej(e)
  35. }
  36. })
  37. }