Zbudowałem prostą aplikację internetową, która wykonuje pewną komunikację za pośrednictwem serwera node.js za pomocą socket.io.Czy socket.io ponownie łączy się ponownie uruchomić connect?
Po połączeniu użytkownika węzeł odsyła informacje, które informują klienta o zasubskrybowaniu określonych zdarzeń. To działa dobrze.
Jeśli jednak zezwolisz przeglądarce na bezczynność, klient dwukrotnie zasubskrybuje zdarzenia. Proces subskrypcji działa tak:
Kiedy użytkownik łączy node.js dostaje wiadomość
Dwie najważniejsze rzeczy, które hapen z tą funkcją „adduser” są to:
socket.on('adduser', function(data)
<snip>
socket.emit('nodeinfo', {node_id: NODE_ID});
socket.emit('update', {msg: 'you are connected'});
gniazda. emit ("nodeinfo") sygnalizuje klientowi subskrypcję zdarzeń.
więc klient ma
socket.on('nodeinfo', function(data) { ... }
Chodzi o to, że nigdy nie powiedzieć „jesteś połączony” dwa razy, żaden z console.log() funkcje w „adduser” nazywa się ponownie po stronie węzła. Wydaje się, że jedyną rzeczą, która się wydarzy, jest to, że node.js emituje ponownie nodeinfo (tak myśli klient), co powoduje, że klient ponownie subskrybuje.
Czy ktoś może mi wyjaśnić, jak ponownie się łączy w działaniu socket.io i jak to się może stać?
Tak. Identycznie z wynikiem zauważam, co dzieje się z naszą aplikacją. dzięki – Xin