Bonjour à tous,
Me voila confronté depuis quelques jours à un problème que je n'arrive pas à régler, et je ne trouve pas grand chose sur le net aussi
J'ai une application avec un front Angular7 + un backend en NodeJs pour gérer un chat.
Quand je me logue à l'application tous fonctionne très bien sans aucun souci. Mais quand je fais un refresh de la page, ou bien que je reviens sur l'url je n'arrive pas à relancer le socket.
Je check bien l'event disconnect pour pouvoir refaire un connect
si je tombe sur l'event de déconnexion alors je lance ce morceau de script
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 this.socket.on('disconnect', (event) => { mon code ici });
J'utilise ngx-socket-io et ma configuration dans mon app.module.ts est assez simple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 this.socket.ioSocket.io.opts.query = { origin: '*', reconnect: true, reconnectionDelay: 1000, reconnectionDelayMax: 5000, reconnectionAttempts: Infinity, secure: environment.chat.socket.secure }; // Add url of the socket this.socket.ioSocket.io.uri = environment.chat.socket.url + ':' + environment.chat.socket.port; // Connect the socket if (!this.socket.ioSocket.connected) { this.socket.connect(); // manually connection }
Quand je refresh la page j'obtiens ce message d'erreur (testé sous Chrome)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 // SocketIo Connexion const config: SocketIoConfig = { url: environment.chat.socket.url + ':' + environment.chat.socket.port, options: { origin: '*', reconnect: true, reconnectionDelay: 1000, reconnectionDelayMax: 5000, reconnectionAttempts: Infinity, secure: environment.chat.socket.secure } }; imports: [ SocketIoModule.forRoot(config) ],Et biensur uniquement si je refresh la page....WebSocket connection to 'ws://xxxxxxxxx:xxxx/socket.io/?EIO=3&transport=websocket&sid=fK14wC_IJhcGmRnHAAAH' failed: WebSocket is closed before the connection is established.
Merci d'avance pour votre aide.
Decad7
Partager