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.3KB

1234567891011121314151617181920212223242526272829303132333435363738
  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"): Promise<I.Socket> => new Promise((res, rej) => {
  7. try {
  8. const socket = socketio(`http://${host}:${port}`, {
  9. reconnectionAttempts: 2,
  10. reconnectionDelay: 200,
  11. timeout: 450,
  12. reconnection: false
  13. })
  14. socket.on('connect_error', e => {
  15. sock.emit('error', e)
  16. rej(e)
  17. })
  18. const sock = U.makePioSocket(socket)
  19. socket.on('connect', ()=>{ res(sock) })
  20. /*
  21. socket.on('connect_timeout', ()=>console.log('connect_timeout'))
  22. socket.on('disconnect', ()=>console.log('disconnect'))
  23. socket.on('reconnect', ()=>console.log('reconnect'))
  24. socket.on('reconnect_attempt', ()=>console.log('reconnect_attempt'))
  25. socket.on('reconnecting', ()=>console.log('reconnecting'));
  26. socket.on('reconnect_failed', ()=>console.log('reconnect_failed'));
  27. socket.on('reconnecting', ()=>console.log('reconnecting'));
  28. */
  29. } catch (e) {
  30. rej(e)
  31. }
  32. })
  33. }