Ответ 1
Websockets должны поддерживать большие наборы данных (теоретически до 16 экзабайт), поэтому с этой точки зрения он должен работать нормально. Преимущество XHR заключается в том, что вы сможете наблюдать прогресс со временем и в целом лучше тестировать на большие блоки данных. Например, я видел реализации сервера websocket, которые (думая ретроспективно) не будут обрабатывать большие данные, потому что они будут загружать все данные в память (а не передавать данные), но это, конечно же, не обязательно для сокета. io (dunno). Точка в случае: попробуйте с socket.io, наблюдая за использованием памяти и ее стабильностью. Если это сработает, обязательно пойдите с websockets, потому что в долгосрочной перспективе поддержка больших пакетов данных будет только улучшаться и определенно не хуже. Если он окажется нестабильным или если socket.io не может передавать большие файлы данных, используйте конструкцию XHR.
Btw, только поиск google появился siofile, так и не заглянул в него, но это может быть просто вещь вам нужно.