Задать вопрос
Ответы пользователя по тегу Node.js
  • Как с помощью html страницы открытой в компе отправить запрос на активный порт localhost?

    @rPman
    Если ваша страница по открывается по незашифрованному http каналу, значит вы можете без проблем посылать GET запросы на любые другие домены, изображения например загружаются и отображаются, это значит вы можете закодировать ваши данные в этом запросе и передать на свой локальный сервер.

    p.s. Таким образом вы можете отсылать GET запросы по локальной сети клиента, сканируя к примеру ее на наличие машин и сервисов, а это получение очень важной информации изнутри сети.

    Например я уже трижды, в разное время, видел https://127.0.0.1:7070 запрос при заходе в личный кабинет сбербанк онлайн (на этом порту anydesk висит) это происходит редко, без специальной подготовки отследить сложно (я вообще заметил его потому что у меня в браузере добавлен самописный сертификат для локалхоста, и теперь фаерфокс предупреждает любые попытки открыть шифрованный канал с его помощью)
    Ответ написан
    Комментировать
  • Как делать post и get запросы с https на http?

    @rPman
    без локального https прокси post запросы никак (есть опция командной строки браузера отключающая запрет), с get запросами можно попытаться выкрутиться, например картинки загружаются. Пробуйте грузить данные в script type=text/html
    Ответ написан
    Комментировать
  • Какие существуют варианты онлайн-стриминга (30fps) HTML контента с сервера без GPU?

    @rPman
    30fps без gpu ускорения сможет потянуть не каждый сервер, либо разрешение экрана будет очень низким, и ни о каких HD, FullHD и тем более 4к вообще речи не будет идти.

    Чтобы не изобретать огород, используйте безголовые xserver, как минимум пара реализаций уже давно существуют, а дальше по накатанной, стримьте готовыми инструментами экран.
    Ответ написан
    Комментировать
  • Как создать .exe файл для приложения на скрипта на NodeJS?

    @rPman
    Если windows то вы можете даже на том же javascript написать приложение (.net) с формочками и кнопочками, скомпилировать штатным компилятором, который идет с операционной системой (точнее это .net framework но он у всех 100% есть так как его таскают с собой даже драйвера)

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\jsc.exe - это компилятор
    Почитайте пример https://www.phpied.com/make-your-javascript-a-wind... (почти первая же ссылка из гугла).
    Недостаток, по умолчанию пути не прописаны и они зависят от версии установленного framework, информации о котором нет в переменных окружения и вытаскивать их либо поиском либо анализом реестра (майкрософт не умеет делать правильные и удобные окружения, никак, никогда)

    К сожалению красиво примеров именно для javascript не найти но если воспользоваться visual studio и посмотреть примеры javascript windows form то можно написать что угодно.

    Итоговый exe получится несколько килобайт, и при этом почти кроссплатформенный (с помощью mono можно запустить на linux)
    Ответ написан
    Комментировать
  • Как я могу получить историю google chrome из electron?

    @rPman
    Первая же ссылка в гугле на тот же stackoverflow, уж адаптировать код для nodejs будет не сложно?

    Коротко - история хранится в sqlite файле, есть правла риски что формат полей и таблиц будет меняться но не думаю что это фатально.
    Ответ написан
  • Как ограничить максимальное количество параллельных запросов?

    @rPman
    Выдавайте новый запрос на каждое следующее подключение на дисконнекте или завершении загрузки (и ошибках) предыдущего, а при запуске всего скрипта поставьте запуск 20 загрузок. Никакой каунтер тогда не понадобится.
    Ответ написан
    Комментировать
  • Можно ли скачать видео из ВК себе на сервер?

    @rPman
    хотя бы погуглить попробовали? youtube-dl умеет
    тут пример команды
    Ответ написан
    Комментировать
  • Сокет из луа в ноду и потом на вебстраницу?

    @rPman
    из lua почти всегда есть возможность делать http запросы, в них заворачивайте необходимую информаци.
    на своем веб-сервере ожидайте эти запросы и перекидывайте куда хотите
    Ответ написан
  • Размещение Node.js и PHP приложения на одном сервере?

    @rPman
    Подавляющее большинство загрузчиков файлов на бакэнде сохраняют его в виде файла на сервере, т.е. вам достаточно nodejs передать имя этого файла. Делайте это через вашу базу данных и через нее же забирайте результат.

    web-клиент -> web-севере на php -> файл на сервере -> nodejs -> база данных (отсюда php сервер отдаст его клиентам)
    Ответ написан
    1 комментарий
  • Как подключить несколько локальных серверов к центральному по http?

    @rPman
    Используйте другой софт на сервере, либо настройте этот, чтобы мог держать несколько подключений.
    Ответ написан
    Комментировать
  • Как передать управление аккаунтом телеграм программе?

    @rPman
    Какими инструментами, приложениями или библиотеками можно воспользоваться, чтобы оперативно отслеживать новые сообщения на публичных каналах telegram?
    там решение https://github.com/TehDmitry/tg-cli

    Собираете и запускаете консольный клиент под вашим аккаунтом, подключаетесь к нему своим приложением по tcp и делаете простые запросы (периодически, самое простое, можно ловить события, но к сожалению групповые чаты часто глючат).
    Ответ написан
    Комментировать
  • Каким образом можно вызывать одно приложение из другого без перезагрузки страницы?

    @rPman
    Без относительно к формулировкам (веб страницу называете приложениями) существует древний способ, открывать страницу во фреймах, т.е. одновременно два запущенных приложения, если оба приложения ваши, вы можете контролировать какие ссылки в каком фрейме открывать.

    p.s. очень грустно будет жить нам в будущем, все приложение в вебе, корявее некуда.
    Ответ написан
    2 комментария
  • Знаете ли вы решения для peer-to-peer тоннелей через Websocket?

    @rPman
    наверное самый легкий вебсервер и клиент к сокетам, идеален для IoT:
    https://github.com/jeremyhahn/cwebsocket

    вообще то их много, гуглить websocket client c (или arm или iot)

    вы можете поднять сервер прямо на устройстве но это плохая практика, если вам нужен доступ из интернета, а не только локальной сети.
    Ответ написан
  • Event loop и то как работает асинхронность это одно и тоже или просто связано?

    @rPman
    Где то под капотом nodejs работает обычный event loop, все асинхронные методы складывают в очередь свои события, каждый кусок кода выполняется, будучи вызван именно от сюда.

    Все методы должны как то уметь работать асинхронно, т.е. будить event loop при завершении работы, если не умеют - наверное для них (каждого вызова) запускается свой поток, внутри которого работает обычный синхронный вызов, по окончании работы которого так же дергается тот же event loop.

    например мы хотим асинхронно файл прочитать - метод получает от операционной системы хандлер объекта, который умеет работать асинхронно, как только получили порцию данных - в цикле event loop завершает работать метод ожидания хоть какого то события (список хандлеров в параметрах либо это специализированный семафор, который все дергают) и обрабатывает событие, которое его разбудило - т.е. видим что пришли данные и вызываем callback метод, у казанный в парметрах вызова работы с файлом, в параметрах - результаты работы. После их обработки снова в цикле вызывается метод ожидания. Таким образом основной цикл работает в одном потоке, но ожидания только если нет событий.
    Ответ написан
  • Как организовать высоконагруженый проэкт на ноде?

    @rPman
    Либо вы гарантированно сохраняете события но медленно их обрабатываете либо наоборот.
    Для начала не усложняйте систему - попробуйте писать в лог на каждое событие, если скорости диска будет не хватать, изменить способ хранения, последовательно исключая то что тормозит (например файловую систему, при записи в файл реально происходит несколько операций, в т.ч. в разных частях диска).
    upd: 16байт записи, дешевый ssd+ntfs:7674 rec/sec, старый hdd+ntfs:425 rec/sec

    У лога есть отличная особенность - он пишется линейно (само собой я пока не рассматриваю инструменты его чтения, в нагруженной системе эти задачи придется решать, разделяя нагрузки по железу), даже для HDD iops в этому случае будут оптимальными (при монопольном использовании этого диска процессом само собой), так как будет работать встроенный буфер энергонезависимой памяти жесткого диска.

    Если линейной скорости диска будет не хватать (в вашем случае само собой хватит, если конечно в лог вы не пишите многомегабайтовые записи) - ставьте несколько дисков, даже без RAIDа с чередованием (его можно реализовать самому, раскидывая сообщения лога по разным дискам по своей логике).

    Еще, вместо попытки все реализовать в одной машине, можно поставить несколько (важно - с независимыми источниками энергии!), тогда можно будет использовать буферизацию уже в оперативной памяти этих машин, т.е. отсылайте записи лога сразу на несколько машин, и считайте что запись записана после получения более чем несколькими из них (не обязательно всеми),.. Вот тут можно воспользоваться готовыми инструментами.
    Ответ написан
  • Node.js+request почему время на отправку первого запроса больше, чем последующие?

    @rPman
    Есть большой шанс что HTTP канал с сервером не закрывается, это дает заметный бонус на последующие запросы.
    Попробуйте делать запросы к разным серверам. А для бенчмарков лучше поднимать свой http сервер.
    Ответ написан
    Комментировать
  • Как с помощью JavaScript можно определить скорость интернета пользователя?

    @rPman
    Интернет в вашем случае почти наверняка 2 параметра - скорость загрузки (сервер->клиент) и пинги, это можно сделать просто сделав пару запросов (большой файл и файл 0 размера) на свой сервер (обычным ajax), замерив время.

    p.s. чем больше размер файла (или чем больше запросов) тем точнее информация но тем выше нагрузка на сервер, да и клиенты не будут довольны что при заходе на сайт у них будет тормозит.
    Ответ написан
    Комментировать
  • Можно ли отправить данные с сервера клиенту на определённый url?

    @rPman
    websocket именно для этого и создавалось

    а до этого использовались отложенные longpool http запросы с паузой (сервер держит открытым соединение с клиентом, который делает запрос типа 'есть ли чо для меня', до тех пор пока не потребуется отправить ему сообщение, и так в цикле)
    Ответ написан
    Комментировать