Durante o desenvolvimento de um módulo de chat em uma aplicação React JS, um programador precisa garantir que a conexão com o servidor via WebSocket seja estabelecida assim que o componente for montado na tela e devidamente encerrada, quando o componente for removido (desmontado), para evitar vazamentos de memória (memory leaks).
Para implementar essa lógica em um componente funcional utilizando o hook useEffect, o desenvolvedor deve estruturar o código de modo que a função de limpeza, responsável pelo fechamento da conexão, seja executada.
De acordo com as especificações do React, essa função de limpeza deve ser