Ответ 1
SockJS имеет больше вариантов на стороне сервера. Если вы не хотите привязываться к Node.js, то это может быть вариант. Масштабирование, по-видимому, работает лучше всего, из некоторых тестов, использующих PyPy для размещения серверной части.
socket.io имеет больше вариантов транспорта, включая Flash. Даже если вам не нравится флеш, у него есть опция для транспорта реального WebSocket, который может работать лучше, в зависимости от желаний вашей реализации.
Дело в том, что либо выполнит свою работу, это просто зависит от ваших желаний. Я бы предложил создать тривиальное приложение в каждом и посмотреть, будет ли один API более естественным для вас.
Лично я больше склонен использовать socket.io... Я также скажу, что если вам нужно масштабировать с помощью кластеров, вам, вероятно, также понадобится наметить стратегию использования pub/sub server (например, как redis), поскольку разные запросы могут поступать в разные процессы, которые не разделяют состояние памяти.
Также стоит отметить, существует ли аналогичная структура для .Net, называемого SignalR...