И SSE и WS - протоколы поверх http, оба могут работать поверх http/2 и иметь мультиплексирование
Но есть между ними и различия:
WS обеспечивает двухстороннюю связь, после установления рукопожатия любая сторона может слать сообщения, протокол бинарный, все сообщения кодируются в бинарные message-frame, что требует доп библиотек на стороне сервера (на браузере такая идет в стандартном апи), зато позволяет передавать как бинарные так и текстовые данные
SSE - односторонняя связь, только от сервера к клиенту, клиент может передать данные только в url при открытии соеденения, дальше вещает только сервер, протокол текстовый, если есть бинарные данные их придется обернуть в base64 (например), с точки зрения сервера - это обычный GET запрос, который сервер не закрывает, а просто шлет данные в http body в особом формате, делая периодически flush соединения (в идеале после каждого сообщения)
Все остальное, вроде комнат и т.д. - надстройки библиотек и не более
В случае koa - по дефолту он завершает запрос когда зарезолвится промис из последнего middleware, для SSE придется это обходить