Для действительно больших изображений, по крайней мере, по крайней мере через web sockets. Однако получение серверной части (и бэкэнд) может быть сложным.
В качестве альтернативы, вы можете нарисовать изображение и использовать простые HTTP-запросы. Существует множество подходов и библиотек, один из которых будет использовать Листовку. Вот достойное объяснение: http://omarriott.com/aux/leaflet-js-non-geographical-imagery/
Все, что вам нужно сделать, это разделить огромное изображение на плитки, а затем вы можете даже поставить его на статический сервер. Плитки должны следовать Конвенции [zoom_level]/map_[0..NX]_[0..NY].png
Затем вы устанавливаете координаты системы отсчета (CRS) для L.CRS.Simple
и сделать слой работу плитки с сервером изображения:
L.tileLayer('/image1234/tiles/{z}/map_{x}_{y}.png').addTo(map);
Серверные посланными события действительно должны быть использованы как незапрошенный механизм уведомления, если что-то важно на сервере, и браузерный клиент должен знать об этом. Например. другой ответ был отправлен на вопрос SO, пока вы редактируете. Фактические данные всегда извлекаются с помощью дополнительного запроса.
Веб-сокеты хороши для чего-либо полного дуплекса TCP-сокеты хороши для (то есть почти все). Но это довольно низкий уровень - хотя для конкретных приложений есть некоторые средства с открытым исходным кодом. Если большой рендеринг изображений является фокусом и точкой продажи вашего приложения, имеет смысл инвестировать в него.
Быстрое, надежное и относительно недорогое решение для решения вашей проблемы (показывая огромное изображение) было бы черепицей изображения.