Относительно того, что window.onload не запускается при работе веб-сервера, звучит очень странно; ваши реализации выглядят хорошо. Может быть, как будто вы никогда не заканчиваете загружать какие-то активы?
Относительно вашей реализации socket.io:
Вы отправляете события от socket
до socket.emit()
, но вы слушаете события, отправленные на ваш сервер, а не на подключенный сокет.
Попробуйте добавить привязку вашего события в событие подключения к серверу, например:
io.on("connection", (socket) => {
socket.on('pageReady', function() {
socket.emit('pageInfo', response);
console.log('page ready recieved');
});
}
Что касается использования socket.io в этом случае
В этом случае использование socket.io звучит как-то неестественно, когда вы, по сути, хотите вызвать сервер (fetch()
) и получить ответ с данными для использования.
Для этого я бы порекомендовал использовать fetch API и структурировать ваше экспресс-приложение, больше похожее на REST API:
Сервер:
var app = Express();
app.get('/data', (request, response) => {
response.send("hello");
}
клиент:
fetch('/data')
.then((data) => {
console.log(data); // => hello
});