|
План написания убийцы TeamViewer и прочих Ammyy... 🠗 (Волшебник 10.07.2015 17:41) | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
Garykom
гуру
24.06.15
✎
05:39
|
Собственно они слегка достали, ТВ своей "борьбой с халявщиками" а аммии тормознутостью (вытекает что вместо написания своего переделали сорцы VNC) и что его банит Chrome.
Хочу свой с посекундной тарификацией за время работы и прочими. Для кроссплатформы решил freepascal|lazarus и чтобы ничего допом типа jre или .net не нужно было ставить. Вообщем нужен план и фичи первоочередные. Пока набросок 1. Сервер-репитер с белым ip пашет как пересылатель туды/сюды и еще для учета и прочего 2. Прога включает в себе сервер: 2.1 соединяется с репитером, отправляет ему свой id 2.2 ждет коннекта, после 2.3 начинает слать скриншоты сжатые чем то // чем лучше? 2.4 получает команды мыши/клавы и выполняет 3. И клиент: 3.1 соединяется с репитером, отправляет ему свой id 3.2 делает запрос на подключение к серверу по id 3.3 получает сжатые скриншоты, распаковывает и показывает 3.4 отправляет команды мыши/клавы ЗЫ собственно что я упустил? ЗЗЫ получение скриншотов уже сделал )) раз в 10 миллисекунд вроде сильно слегка устаревший комп не грузит, причем еще и отображение пашет ЗЗЗЫ http://saveimg.ru/show-image.php?id=f00f2cef9a7e71599dadbc28ad7f5034 |
||||||||||
439
Jump
29.06.15
✎
11:24
|
(436)Тимвьювер не кроссплатформенный.
Попробуй модуль для винды запустить на линуксе. Для каждой платформы свой клиент, написанный именно под эту платформу. Т.е для винды, для андроида, для мака, и для линукса. Причем не каждый клиент поддерживает все функции. |
||||||||||
440
Garykom
гуру
29.06.15
✎
11:26
|
(439) вот это уже холивар пошел...
как бы у меня код кроссплатформенный (одинаковый для всех), понятно что под каждую отдельно компилить |
||||||||||
441
Jump
29.06.15
✎
11:31
|
(440)Вот у меня есть программулька кроссплатформенная - джава
Ее хоть на винде, хоть на маке запускай, лишь бы джава машина была. Прекрасно работает. Это полная кроссплатформенность. Есть софт который можно перекомпилировать под другую платформу. Но тимвьювер к нему не относится. Ты не скомпилируешь софт написанный исключительно под винду, для линукса. Ибо он работает с Win API. Для линукса есть свой нативный клиент. И общего у него с клиентом для винды только название и внешний вид. |
||||||||||
442
Garikk
29.06.15
✎
11:35
|
(441) с паскажем тут какраз "есть варианты"
|
||||||||||
443
Garikk
29.06.15
✎
11:35
|
(442) тьфу.. "с паскалем"
|
||||||||||
444
Провинциальный 1сник
29.06.15
✎
11:37
|
(439) Кстати, запускат тимвьювер под виндой через вайн - почти нормально работал)
|
||||||||||
445
Jump
29.06.15
✎
11:37
|
Определить на глаз очень просто - тимвьювер рисует окошки через WinAPI, эти окошки выглядят по разному в зависимости от темы оформления винды.
Т.е нативные виндовые окошки. А кросплатформенный софт рисует окна, своей библиотекой, которую таскает вместе с собой. |
||||||||||
446
Провинциальный 1сник
29.06.15
✎
11:37
|
(444) Пардон, имел в виду виндовый тимвьювер в линуксе.
|
||||||||||
447
Jump
29.06.15
✎
11:38
|
(444)Чего?
Под виндой? Через вайн? Да вы однако извращенец. Не подскажете где скачать вайн под винду? |
||||||||||
448
Jump
29.06.15
✎
11:38
|
(446)Ааа, понятно.
Ну не проще ли нативный клиент скачать? |
||||||||||
449
Garykom
гуру
29.06.15
✎
11:43
|
(447) уточняю... тим под линукс и так через свой вайн работает
|
||||||||||
450
Garykom
гуру
29.06.15
✎
11:44
|
(441) хм а как насчет эту программульку на java запустить в андроиде?
под который кстати на java в основном и пишут программы... |
||||||||||
451
Провинциальный 1сник
29.06.15
✎
11:47
|
(445) Так основная проблема не в отрисовке, а в захвате экрана. На разных системах это делается по разному.
|
||||||||||
452
Garykom
гуру
29.06.15
✎
11:48
|
(451) если бы только захват экрана...
|
||||||||||
453
Jump
29.06.15
✎
11:48
|
(449)Нет.
Вайн это собственно куча библиотек которые обеспечивают под линуксом обработку WinAPI. И весят они офигеть как немало. А тимвьювер под линуксом использует родные библиотеки. |
||||||||||
454
Garikk
29.06.15
✎
11:48
|
(450) под андройд надо переписывать, то на чём под андройд программы пишут...это не совсем правильная java...это изврат
|
||||||||||
455
Jump
29.06.15
✎
11:48
|
(451)Да основная проблема в захвате, отрисовку я привел как наглядный пример.
|
||||||||||
456
Jump
29.06.15
✎
11:51
|
(450)Ну кроме программной платформы не последнее место имеет железная платформа.
Программулька работает с мышкой на любой платформе, и не приучена работать на мелких экранах, т.е просто там недостаточно функционала железного для запуска. А чисто программно - не проблема. |
||||||||||
457
Jump
29.06.15
✎
11:52
|
Сам не пробовал, но по идее на нетбуке с андроидом должна стартануть.
|
||||||||||
458
stix2010
29.06.15
✎
11:53
|
(453) teamviewer для linux содержит свою версию wine. Кроссплатформенность это иллюзия
|
||||||||||
459
Garikk
29.06.15
✎
11:54
|
(457) в андройде нет полноценной jvm, там кособокий dalvik собранный ищ обломков java 6 ...а в новых андройдах из него какойто ART соорудили... но один фиг нативная java там не работает
|
||||||||||
460
Jump
29.06.15
✎
12:02
|
(459)Ну может и так, я с андроидом не дружу.
|
||||||||||
461
Jump
29.06.15
✎
12:04
|
|||||||||||
462
Garykom
гуру
29.06.15
✎
12:07
|
(461) как бы просто (0) расписал более детально после того как демку накидал
но куча пунктов добавилось и фичей вот сча думаю в простом варианте запускать или все таки пилить до "конфетки", но тогда $ нужно искать и еще разработчиков |
||||||||||
463
Garikk
29.06.15
✎
12:10
|
imho стоит запускать в простом варианте, и искать инвестора под стартап
иначе допиливание может очень на долго затянутся я так один свой проектик с декабря "допиливаю"...всё никак не могут выползти от попыток "конфетку" сделать |
||||||||||
464
Jump
29.06.15
✎
12:33
|
(462)Ты все еще думаешь делать скриншоты слать их?
Или нашел другое решение? ИМХО это тупиковый путь - трафик будет такой, что канал потребуется на 100мегабит. |
||||||||||
465
Jump
29.06.15
✎
12:34
|
(463)Инвестора есть смысл искать, когда есть готовое и хорошо работающее приложение, которое можно допиливать.
|
||||||||||
466
Garikk
29.06.15
✎
12:37
|
(465) как показывает практика, люди находят инвесторов даже с безнадёжным ппц-ом, с тремя строчками кода и иногда даже без нормальной идеи
Тупо с картинками и красивыми презенташками |
||||||||||
467
Garikk
29.06.15
✎
12:39
|
достаточно на список проектов известных инкубаторов посмотреть, там такой дикий ужас, меня вообще поражает КАК за такое деньги дают...
|
||||||||||
468
Jump
29.06.15
✎
12:41
|
(466)Не этот случай. Одно дело найти инвестора на нечто новое, что никогда никто не делал.
Другое дело найти инвестора на приложение которое повторяет функционал существующего. Программ для удаленного доступа сотни, из них десяток более-менее известных. Рынок забит. |
||||||||||
469
Garykom
гуру
29.06.15
✎
12:41
|
(464) как бы все скриншоты шлют (teamviewer, ammyy и прочие vnc) так что не вижу проблемы
только они не полные понятно шлют, а только изменившиеся области еще есть вариант с векторизацией, но это нереально быстро реализовать |
||||||||||
470
Garikk
29.06.15
✎
12:43
|
(469) так прочие vnc тормозят неимоверно на слабых каналах (468) сколько убийц фейсбуков и форскверов было...этож жесть какаято..
|
||||||||||
471
Garykom
гуру
29.06.15
✎
12:43
|
(468) как бы наоборот проще, только БП должен быть нацелен на отличия от основных конкурентов, на маркетинг и экономическую часть больше
|
||||||||||
472
Jump
29.06.15
✎
12:43
|
(469)Ну самое простейшее что использовалось на заре VNC это скриншоты прямоугольных примитивов.
Т.е отслеживают область изменений и ее пересылают. Это дикий трафик. Даже в таком виде. А уж если целиком слать скриншоты, то это вообще жестко будет. |
||||||||||
473
Garykom
гуру
29.06.15
✎
12:44
|
(470) угу только немало и взлетело как бы моя фейсбуком не пользоваться совсем в отличие от вконтактика
|
||||||||||
474
Jump
29.06.15
✎
12:44
|
(470)А на слабых каналах работают только два метода из ныне существующих - это закрытый код от тимвьювера, и RDP.
|
||||||||||
475
Garikk
29.06.15
✎
12:44
|
(473) сколько взлетело то?
Мой мир помер, мой круг помер... осталсь только одноглазники и ВК |
||||||||||
476
stix2010
29.06.15
✎
12:45
|
лучше описание RDP протокола найти (в идеале ICA, но кто ж его раскроет)
|
||||||||||
477
Garikk
29.06.15
✎
12:45
|
(475)_ даже гуглплюс не взлетел с такой то расруткой
|
||||||||||
478
Jump
29.06.15
✎
12:46
|
(476)Да вроде RDP открытый протокол.
|
||||||||||
479
Garykom
гуру
29.06.15
✎
12:47
|
(474) не хочется разочаровывать, но у тимвьювера просто идет автоподстройка частоты скриншотов под канала
типа совсем если хреновый начинает кадр раз в 2-3 секунды передавать |
||||||||||
480
Jump
29.06.15
✎
12:54
|
(479)Это так, а при чем тут разочаровывать?
Главное работает. А физику не победишь. Если канал узкий и не позволяет передать достаточно данных, надо уменьшать количество данных в ущерб качеству. Все логично. |
||||||||||
481
Jump
29.06.15
✎
12:55
|
Единственный кто нормально, показывает видео это RDP, но и канал должен быть офигенным.
|
||||||||||
482
Garykom
гуру
29.06.15
✎
12:56
|
(480) при том что нету никакого "секретного метода"
а с rdp еще проще все, он на контролах работает по умолчанию и когда может попробуйте через rdp фильму посмотреть а вот потом и говорите насчет скорости )) |
||||||||||
483
Garykom
гуру
29.06.15
✎
12:57
|
(481) потому что если канал "не офигенный" он вообще тупо виснет с видео...
|
||||||||||
484
Jump
29.06.15
✎
12:58
|
(482)Так какой может быть секретный метод?
Все методы известны. Вопрос лишь в том насколько качественно он реализован и допилен под задачу. А на RDP видео классно идет, смотреть можно. |
||||||||||
485
Garykom
гуру
29.06.15
✎
12:59
|
как бы ничего не мешает использовать принципы live stream video
и будет даже лучше чем rdp и при этом не так грузить канал но будет тогда грузить проц хоста |
||||||||||
486
Jump
29.06.15
✎
12:59
|
Да RDP повиснет с видео на слабом канале. Есть такое.
У тимвьювера идет автоподстройка под ширину канала, а у RDP с этим хуже. |
||||||||||
487
Jump
29.06.15
✎
13:01
|
(485)Вот.
А у меня множество хостов - это дохлые машинки со слабым процессором и минимумом оперативки. Если их озадачить кодированием видео на лету, будет очень печально. Удаленка может и будет работать, а вот работать с машиной станет невозможно. |
||||||||||
488
Jump
29.06.15
✎
13:03
|
Поэтому логичнее всего будет допиливать VNC, в плане оптимизации и динамической автоподстройки к ширине канала.
А не изобретать лисапед. |
||||||||||
489
Garykom
гуру
29.06.15
✎
13:03
|
(487) как бы обычная дилемма выбора
на слабых машинках лучше всего пашет radmin, он да через видеодрайвер работает, но с нагрузкой на канал у него все плохо |
||||||||||
490
Garykom
гуру
29.06.15
✎
13:05
|
(488) VNC это просто сокращение https://ru.wikipedia.org/wiki/Virtual_Network_Computing
по сути протокол конкретные реализации на языках программирования (почти всегда c++) называются с разными приставками как бы моя ничего не нарушать даже канонов |
||||||||||
491
Jump
29.06.15
✎
13:09
|
(490)VNC это протокол удаленного доступа.
А если говорить о методах передачи изображение то там протокол RFB. |
||||||||||
492
Jump
29.06.15
✎
13:13
|
У тимвьювера скажем логика похоже следующая - есть приоритет передачи.
Т.е стандартный RFB, выбираются области с изменениями и передаются, но в первую очередь передаются области с наименьшими изменениями, а там где изменений много - передаются по принципу - сколько успеет, на данном канале. В итоге курсор, рабочий стол - отрисовываются быстро, а если где то открыто видео, оно при слабом канале будет обновляться раз в минуту. |
||||||||||
493
Jump
29.06.15
✎
13:25
|
Еще преимущество тимвьювера в том, что там реализован NAT traversal.
Хотя если будет свой личный репитер, то можно обойтись без этого. |
||||||||||
494
Garykom
гуру
29.06.15
✎
13:33
|
потестил формат графики bpg, сжимает то он конечно замечательно... в 3-6 разу лучше чем jpg или png
но с такими тормозами что применить не получиться походу |
||||||||||
495
stix2010
29.06.15
✎
14:29
|
кстати, если прикрутить передачу только дельта изменений то трафик упадет в разы, к примеру 1 кадр в секунду ключевой, потом передача дельты относительно ключевого.
|
||||||||||
496
Garykom
гуру
29.06.15
✎
14:30
|
(495) дык это и ваяю сча
|
||||||||||
497
stix2010
29.06.15
✎
14:33
|
а вообще ключевую картинку необходимо поделить на области и передавать дельты из каждой области
|
||||||||||
498
Jump
29.06.15
✎
14:33
|
(497)Дык это собственно и делается в том же VNC.
|
||||||||||
499
Jump
29.06.15
✎
14:36
|
Тут еще походу и кэширование не помешает.
В стандартной работе часто приходится иметь дело с одими и теми же изображениями, которые просто перемещены. Т.е если ты передвинул окно в другую часть экрана, гораздо проще взять готовый фрейм из буфера на локальной машине, и отрисовать его на новых координатах, чем тащить по сети его, или его дельту с прежним изображением на этом участке. |
||||||||||
500
Гёдза
29.06.15
✎
14:37
|
(499) так мы и до реализации рдп дойдем ))
|
||||||||||
501
stix2010
29.06.15
✎
14:38
|
(498) хех, написал стих "Мой дядя самых честных правил...", оказалось это уже Пушкин до меня сочинил
|
||||||||||
502
Jump
29.06.15
✎
14:40
|
(501)Да Пушкин вообще подлец, написал все стихи которые можно было написать, а теперь современная молодежь мучается, ибо чтобы ни придумали - у Пушкина уже есть.
|
||||||||||
503
Garykom
гуру
29.06.15
✎
14:42
|
(499) идея интересная но реализовать проблемно, хотя можно через отслеживание координат окон
вот если видео на экране кажется и в нем квадратик двигается то уже никак по простому |
||||||||||
504
Jump
29.06.15
✎
14:46
|
(503)Если говорить о винде, то не очень проблемно.
Кординаты всех ярлыков, окон и прочего можно узнать у эксполрера, или через винапи. |
||||||||||
505
Garykom
гуру
29.06.15
✎
14:46
|
(503)+ хотя... если хранить (как и передавать) изображения сразу с хешем то можно ))
т.е. свернули окно, показываем рабочий стол весь, назад восстановили - опс а картинка то уже есть |
||||||||||
506
Garykom
гуру
29.06.15
✎
14:47
|
(504) угу только как бы сразу "для разных ОС" хочу, т.е. варианты "только для винды" рассматриваю в последнюю очередь
|
||||||||||
507
Jump
29.06.15
✎
14:49
|
(506)Дык в линуксе тоже есть методы чтобы получить координаты объектов на рабочем столе.
Просто они другие. Т.е в разных ОС будет просто разные механизмы получения и работы с ними, а объекты одинаковые. Поэтому в любом случае для вин и лин клиенты должны быть разными. А протокол обмена между разными клиентами должен быть один. |
||||||||||
508
Garikk
29.06.15
✎
14:51
|
(507) в линухе можно из иксов напрямую тянуть примитивы которыми он рисует окно
|
||||||||||
509
Garikk
29.06.15
✎
14:52
|
в винде затрудняюсь сказать насколько это доступно
|
||||||||||
510
Jump
29.06.15
✎
14:52
|
(509)В винде то же самое, только реализация различается.
|
||||||||||
511
Garykom
гуру
29.06.15
✎
16:06
|
(510) даже тимвьювер для линукс не стали переписывать а вайн заюзали... вы хотите чтобы я написал круче чем они?
|
||||||||||
512
Провинциальный 1сник
29.06.15
✎
16:15
|
(497) Причем в первую очередь и с лучшим качеством передавать те участки, где ближе мышка или где находится текстовый курсор. Во вторую - где были больше изменений. Ну и в третью всё остальное.
|
||||||||||
513
Garykom
гуру
29.06.15
✎
16:22
|
(512) больше изменений это как?
пока простой алгоритм есть два кадра (текущий и предыдущий), бежим по пикселям слева-направо и сверху-вниз, если цвет точки на кадрах отличается то кидаем в кадр изменений (этот кадр изменений по сути целый экран с прозрачным фоном) если много изменений (больше 50%) причем это обнаружилось еще в процессе пока не дошли до конца, то прерываем сравнение и шлем целый кадр |
||||||||||
514
Garykom
гуру
29.06.15
✎
17:07
|
(513) вот кстати этот метод пробег по всем пикселям и сравнение на больших разрешениях экрана вызывает слегка тормоза
т.е. придется по некой сетке делать или еще как типа http://www.delphimaster.ru/cgi-bin/forum.pl?id=1284964400&n=7 задачка то древняя любителей лисапедов много |
||||||||||
515
Garikk
29.06.15
✎
17:18
|
я плохо соображаю в математике, но сдаётся мне что картинки можно сравнивать как две матрицы...и относительно этого высчитывать различия
|
||||||||||
516
Garikk
29.06.15
✎
17:19
|
плюс такие вычисления видеокарта умеет делать довольно шустро
|
||||||||||
517
Jump
29.06.15
✎
18:10
|
(514)Понятно что будут тормоза, как при подсчете, так и при передаче.
Не надо бегать по пикселам, работай с областями. |
||||||||||
518
Jump
29.06.15
✎
18:47
|
Вообще чтобы не городить велосипед из костылей, думаю за основу стоит взять принципы работы RFB.
http://www.realvnc.com/docs/rfbproto.pdf |
||||||||||
519
Злопчинский
29.06.15
✎
18:49
|
жду велосипеда на тестдрайв. надеюсь, что в альфа версии тормозные колодки не прилипнут к ободам
Хочу демо/тест |
||||||||||
520
Garykom
гуру
29.06.15
✎
19:04
|
(519) лисапед пока тока прямо едет (без репитера) и медленно, это совсем неинтересно
|
||||||||||
521
Garykom
гуру
29.06.15
✎
19:08
|
Гм интересная задачка, а как можно определить что 2 компа находятся в одной локальной/виртуальной сети?
Хотя понятно делаем пробный коннект к ожидаемому ид и если нет коннекта или ид не тот то нуна через репитер |
||||||||||
522
Jump
29.06.15
✎
19:20
|
(521)Не понял зачем это нужно? А вообще через широковещательную рассылку можно.
|
||||||||||
523
Garykom
гуру
29.06.15
✎
19:31
|
(522) чтобы через репитер поток не гнать если можно напрямую, когда компы в одной локалке или белые ip
хм еще нужно предусмотреть вариант обратного подключения когда у админа белый ip а целевая машина за натом, чтобы целевая обратный прямой коннект сделала т.е. компы 1 и 2 соединены с репитером 3, если комп 1 хочет управлять компом 2 то: делаем попытки соединения 1->2 и 2->1, если обе не прошли то через репитер 1->3->2 |
||||||||||
524
Jump
29.06.15
✎
19:42
|
(523)Лучше не мудрить, а сделать переключатель.
По дефолту считаем что работаем в интернете, для подключения по локальной сети ставим галку. Или банально указываем айпишник. |
||||||||||
525
Garykom
гуру
29.06.15
✎
20:44
|
(524) неа, предпочитаю следовать принципу kiss
т.е. для пользователя все должно быть как можно проще и понятнее, все сложное в доп.настройках или отдельный режим работы(эксперт)/версия |
||||||||||
526
forforumandspam
01.07.15
✎
08:18
|
(394) +100500
|
||||||||||
527
forforumandspam
01.07.15
✎
08:52
|
(0) Хочется больше настроек качества изображения, а именно, выбирать кадры/с, кратность размера картинки и уровень качества jpeg (0..100). Кратность - это вместо 1200х1600 на клиенте увидеть 600х800. Иногда важно хоть что-то, хоть как-то увидеть, чем ничего.
|
||||||||||
528
Garykom
гуру
10.07.15
✎
17:04
|
(527) для этого нужно как то скорость канала оценить
все методы что я знаю дают дикий разброс на коротком интервале тестирования (меньше несколько минут) |
||||||||||
529
H A D G E H O G s
10.07.15
✎
17:10
|
Прошло 2 недели с начала темы.
Што написано афтором? |
||||||||||
530
Garykom
гуру
10.07.15
✎
17:16
|
(529) автор дальше пока ничего не делал, пытаюсь траблы на основной работе решить и машину обновить... при этом все это перемежается отвлечением на флуд на форумах
ЗЫ пора что то бросать... |
||||||||||
531
H A D G E H O G s
10.07.15
✎
17:21
|
(530) Давай я тебе расскажу, что будет дальше:
1. Ничего. |
||||||||||
532
Garikk
10.07.15
✎
17:35
|
А как всё хорошо начиналось :))
|
||||||||||
533
Garykom
гуру
10.07.15
✎
17:40
|
(531) не спорю, возможно и так
|
||||||||||
534
DDwe
10.07.15
✎
18:54
|
Хотели как лучше, а получилось...
|
||||||||||
535
mistеr
12.07.15
✎
20:55
|
Пока автор флудил на форуме, уже RDP клиент на JavaScript написали.
|
||||||||||
536
Salimbek
14.07.15
✎
14:53
|
(535) Не верю, VNC - написали, RDP - нет.
|
||||||||||
537
Garykom
гуру
14.07.15
✎
16:50
|
(535) молодцы терь пусть сервер напишут...и заставят на любой оси (любом броузере) это работать
|
||||||||||
538
mistеr
16.07.15
✎
14:45
|
(536) https://github.com/citronneur/mstsc.js - попробуй.
Правда, кроме браузера, требуется Node.js. Пока. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |