Отключите скрипты в браузере- проверьте что сайт пускает (нет более хитрой защиты скриптами со стороны клиента, но таких сайтов мало).
Если с одного IP пускает браузер, но не безголовый хром с стейлс плагином, смотрим заголовки, смотрим куки, подгоняем- пробуем. Надеюсь, Вы используете каждый раз новую сессию, а не с сохранением куков и прочего на диск.
Если что, там же еще можно socks прокси включить в puppeteer.
ну просто зайти через web интерфейс usermanager и создать вручную все тарифы и соответствующие им учетки-шаблоны. Прошли годы, возможно этот баг был поправлен и именно такой хак может быть не актуален, но все ровно должен быть рабочий.
Ну в RouterOS никогда не видел никакого ALG RTSP, есть только SIP из родственного. Да, судя по гуглу в RTSP есть два режима все через TCP канал, или TCP+ 2xUDP. Увы в камере нет никаких настроек, а если они задаются url, как у другой камеры rtsp://user:password@your_ip:10554/tcp/av0_0, то о них ничего не известно.
Кстати, связал свой роутер с удаленным где камера через PPTP, чтобы мимо NAT, но фигня та же самая- коннект есть, картинки нет. Толком не понятно что там происходит в тех UDP сокетах и кто куда коннектится. Блин, думал банальнее вещи, чем пробросить камеру в инет нет.
Филипп, да кто знает... все таки поле server_port=40000- 40001, вполне возможно что клиент на эти порты туда стучится, с каким то первоначальным запросом, а в ответ пойдет поток UDP пакетов. Не видел я в RTSP на 554 пакетах упоминания IP клиента, только порты, значит камера слать поток без предварительного хендшейка со своей стороны не может. Хотя может и пропустил его где то. Все таки 3 десятка пакетов на старте. Мутная какая то схема.
Виталий Столяров: Нет, нельзя. ES6 не имеет каких то других классов, все функционально должно транслироваться в ES5. Вы же не сможете написать так в ES5? Есть только конструктор, и методы/свойства, больше никаких дополнительных областей видимости для private переменных в ES6 не введено. В ES7, кажется, хотят такое ввести, но я этому не рад.
Виталий Столяров: предполагалось, что "var self = this;" Вы пытаетесь сохранить ссылку на сам класс А, хотя теперь понял что вы хотели this экземпляра класса и внутренний this анонимной функции, т.е объект события в этом случае. Ну то тут нет никакого другого варианта, кроме как сохранять контекст во внешней переменной в методе, это никакой не костыль, если нужно сберечь внутренний контекст, иначе .bind(this) переустановит контекст, а стрелочная функция и вовсе внешний возьмет, за неимением своего, в обеих случаях внутренний контекст анонимной функции потеряется.
Emil Revencu: о, еще как помогаем, но предпочитаем делать это для людей, кто хоть вводную статью в js прочитали, котрых как грязи сейчас, хотя тут не только с ним грабли. Это больше похоже на тролинг что ли... куча умных слов в профайле, и ЭТО...
Ну хотя бы о setTimeout почитайте, тег скрипт правильно вставьте в документ, visibility тут не нужен, раз display есть, стили в css ...
yokotoka: отдача разного контента для бота и юзера сейчас частая практика для серверного рендеринга web приложений, если уж гугл сам предлагает этот стандарт, то, вероятно, он позаботился об более лояльных алгоритмах, на крайний случай можно показывать куски контента и юзерам для повышения доверия бота.
Хотя можете предложить свое супер-техническое решение, с радостью послушаю, если оно не предполагает задействования Т800 и скайнета :)
Виталий IIIFX Хоменко: ну так и представляю- сначала показывать контент только google боту, проверяя клиент на user-agent и принадлежит ли его ip домену googlebot.com / google.com
yazux: тогда это совсем печально, там только озу бешено выжрет... ну тогда, как сказали уже- нужен отдельный массив-индекс с ключами по городу и массивом ссылок на поля исходного. Больше тут ничего не сделаешь с адекватным приростом. Можно еще повлиять на ощущения юзера и искать не в одном полном индексе, а разбить на несколько блоков и искать асинхронно между блоками, дабы не подвисал UI. Либо попробовать синхронно, но все же разбить на несколько отдельных индексов, каждый из которых в свою очередь обслуживают только свою начальную букву или несколько букв. Думается в таком случае поиск движок быстрее будет справляться с вычислением значения объекта по ключу. Хотя это в случае если городов очень очень много будет, т.е индексов более 65535 (хотя маловероятно даже для России.) Помнится после этого значения в 2 байта длинны движок замедляется.
Дмитрий Беляев: ну это уже частный случай баги V8, тогда об этой печали мало кто знал ну и под движковую оптимизацию тоже никто не подстраивался:) благо все ровно на практике было проще при передаче пихать напрямую переменные в инлайновый массив, так как ужимается лучше минификатором.
Хотя я вот не уверен что в таком случае будет утечка, если во внутренней функции объект arguments нигде не застрянет, пока все еще верю на слово, что кроме как по индексу гулять лучше ничего с ним не делать :)
памяти свободной 70+ мбайт... Похоже, все из за рассинхронизации диска и кеша файловой системы в ОЗУ на виртуальной машине... Кажется, команда sync в openWrt частично помогает, но уверенности нет.
это отключит логирование вообще всех аутентификаций: telnet, winbox , api ... нужно игнорировать только через api, но увы такого не сделать, как я понял...
Alexandr: так оно и есть... только для новых сессий, тут и печалька, "turbo режим" просто так не реализуешь=). Вообщем разрабов не понять зачем это было сделано. Единственная надежда- удалить их правила и создавать на тот же ip свое правило по onLogin/onLogout, но пока не ясно как синхронизировать это дело, чтоб не засорялась очередь правилами, когда юзер делает logout. Вообщем, я гемор сам себе нахожу :D
Если с одного IP пускает браузер, но не безголовый хром с стейлс плагином, смотрим заголовки, смотрим куки, подгоняем- пробуем. Надеюсь, Вы используете каждый раз новую сессию, а не с сохранением куков и прочего на диск.
Если что, там же еще можно socks прокси включить в puppeteer.