Ð
если о протоколе - тут решений куча, в простейшем случае это json и json rpc, если об архитектуре проекта - 🤷♂️, сокеты тут не причем, это просто канал связи, я чаще всего навешивал их на тот же сервер, что и экспресс, в качестве отдельной подсистемы
А можно его как-то обернуть (ws), чтобы не юзать чисто event emitter? Имею ввиду паттерн какой-нить или best practice. Просто идейка (велосипедик напишу), как бы его лучше декомпозировать. А то конструкция с http upgrade и emit довольно сильно ниже по уровню...