Вероятно, это нужно делать как-то по другому. Но я не приложу ума как это сделать
Вы сейчас, наверное, будете сильно удивлены, но для соединения с помощью Socket.IO, надо подключить и использовать библиотеку Socket.IO.
Изучить вопрос самостоятельно можно по
этой ссылке.
Ошибка у вас из-за неправильного использования setInterval, вы вместо колбека передаете туда результат выполнения send.
Вместо:
setInterval(foo(bar), duration);
Надо:
setInterval(() => {
foo(bar);
}, duration);
Ну и для возможности остановить его выполнение его надо хранить и чистить по определенному условию:
const interval = setInterval(() => {
foo(bar);
if (someCondition()) {
clearInterval(interval);
}
}, duration);