readyState === 1
, создается инстанст класса CreateDataCard
в этом инстансе создается инстанс класса CreateViewCard
. Ну и на выходе получаем столько карточек с данными, сколько открыто websocket соединений, ну и соответственно у каждой карточки свои данные и свое представление. Как такое же реализовать на Vue? Ведь у Vue одна data
на все приложение. CreateDataCard
и один инстанс CreateViewCard
, в которых происходит обработка событий websocket(onmessage, onclose и т.д.) запрос данных ws.send
и их отрисовка. Если вы знаете как более оптимально с этим всем работать - буду рад почитать. const makePortScanner = (address, port) => new Promise((resolve, reject) => {
const ws = new WebSocket(`ws://${address}:${port}`);
ws.onopen = () => {
ws.close();
resolve([address, port]);
};
ws.onclose = () => {
reject("no connection");
}
});
const found = []; // сюда складывать найденные
// TODO: продумать логику пула задач,
// одновременно не более N параллельных попыток
for (let octet = 0x0; octet < 0xFF; octet++) { // не запускать так!
for (let port = 1024; port < 9000; port++) {
makePortScanner(`192.168.1.${octet}`, port)
.then((pair) => found.push(pair))
.catch((err) => void err)
.finally(() => {
// TODO: тут создаётся следующий Promise
}
}
}
finally()
создавать следующую задачу. с очередным сокетом вам же надо только понять, установилось ли соединение, или нет — и всё?
new ToDoList()
только во Vue.