Pull to refresh
106
0
Евгений Халецкий @xZenon

Пользователь

Send message
Я достаточно хорошо разбираюсь в IM-протоколах — реализовывал бинарный ICQ-протокол, реверс-инженерил Skype, реализовывал клиентов, ботов, серверные сервисы XMPP, и даже писал свой сервер в порядке эксперимента, писал клиента нового вконтактового MTProto. Хоть меня уже слили однажды за такое мнение, но повторюсь — XMPP нельзя называть устаревшим, но он не реализовывает и не может реализовать множество возможностей, которые требуются от современных IM-протоколов, и XEP-ами эта проблема не решается — они располагаются на слишком высоком уровне.
А именно:
1. Стабильная работа на нестабильном сетевом соединение — если соединение рвётся, сообщения могут теряться, как входящие, так и исходящие. XMPP работает исключительно по TCP и полагается на стабильность соединения, нет возможности создавать сессии, размазанные по нескольким соединениям, нет гарантированной доставки сообщений, существует XEP-0184, но он до сих пор Draft и никем не поддерживается и не решает проблемы полностью, так как находится на высоком уровне и распространяется далеко не на все сообщения протокола.
2. Нет возможности доставки сообщений на все девайсы пользователя и синхронизации истории между ними — с доставкой gtalk решил проблему, нарушив спецификацию XMPP, но это ему не очень помогло.
3. Нет возможностей отправки медиавложений в сообщения — фотографии, видео, геолокоейшоны и прочее. Даже если реализовать поверх костылями, это будет работать не очень хорошо и с большим оверхедом.
4. Нет единого стандарта на отправку файлов, существует огромное количество разнообразных костылей и proxy service для этого.
5. MUC для организации групповых чатов слишком неудобен и его очень непросто интегрировать с существующими сервисами, как в случае ВК, не верите — почитайте спецификацию, почитайте ВК-апи, и попробуйте предположить, как могла бы работать подобная интеграция, не нарушая спецификаций XMPP.
6. Ещё можно добавить, что сам протокол тяжел, гибок не в том месте, где надо и избыточен, но это уже много раз обсуждалось и сущие мелочи по сравнению с недостатками выше.
Да, конечно.

  • При использовании и парсинге XML запросов нужно запретить парсинг сущностей и не допустить XXE уязвимости
  • Если используется sha1/sha512/md5 (и т.п.) при генерации токена ключ подставлять справа от конкатенируемых параметров, чтобы не допустить length extension attack
  • Использовать https для API. При этом, если используете Web API в мобильном приложении — проверяйте сертификат на корректность (как в браузере, когда выскакивает окошко, если сертификат не валиден). А еще лучше — зашить отпечатки сертификата, чтобы усложнить анализ протокола (т.е. даже при добавлении своего сертификата глобально на телефон, использование приватного ключа при сниффинге трафика ничего не дало). Т.е. только при модификации приложения стало возможным анализировать ваш API (встречается крайне редко, даже у «гигантов» индустрии)
О сколько нам открытий чудных! :)

На самом деле у меня уже год с лишним дома работает Vera3 и под сотню уже z-wave устройств.

Надо заметить, что после 20+ устройств — вера работает хреново.

Очень хреново — в смысле медленно.

Но работает. Проблема Fibaro HC2 — то что там очень мало z-wave железок поддерживается, хотя потенциал (за счет того что очень шустрое железо) сильно выше чем чем у MicasaVerde.

Что сделано:

1) Все освещение на z-wave (дорого но обалденно качественно делают итальянцы — www.vitrum.com, после этого все остальные переключатели выглядят как колхоз. Вплоть до того, что сенсорный «дисплей» на переключателях можно как на старых айподах «крутить»

2) Отопление батареи все контролируются тоже z-wave ( danfoss living connect )

3) Шторы и гаражная дверь — virtum + fibaro relay

4) Вентиляция (fibaro relay)

5) Z-wave сирены (fortrezz)

6) Z-wave датчики дыма

7) Тонна сенсров (в основном — aeon labs 4 in 1 multisensor — освещенность, движение, влажность, т-ра)

8) Z-wave замки (poly-lock и yale )

9) видео-домофон SIP (2N® Helios IP Vario) + RFID ридер встроенный + Z-wave универсальный Fibaro. Короче, видео и аудио в любой точке мира на любой SIP клиент, дверь могу открыть удаленно или RFID меткой (в руку не вживлял, но думаю ;)) )

10) Пачка камер с ночным видением (Mobotix и Axis)

11) Управление бойлером для отопления и горячей воды — Horstmann

12) Трансивер RFXTRX для подключения кучи разнообразных наружных датиков (включая погодной станции Oregon Scientific) — UV, Wind, Temperature, Humidity и тд

13) 4kWh панели на крыше солнечные (sunnybeam, производительность в UK можно тут посмотреть — www.sunnyportal.com/Templates/PublicPage.aspx?page=38d3471e-21c7-463d-a49a-67436cc14aa8 )

14) Почтовый ящик z-wave (как только почту бросили — получаю push сообщение на айфон и голосом говорит «заяц» в living room — кстати прикольная штука, www.karotz.com )

15) Все двери с сенсорами (everspring и aeon)

16) Пачка панелей управления (scene controller)

17) Парочка ipad c SQremoteHD вмонтированы в стенки (как контроллеры продвинутые) — можно управлять всем, от музыки в каждой комнате до телевизора (Samsung ES8000 с андроидом)

18) Дофига еще всякого барахла, все и не упомнишь. Короче — хобби это мое некоторое время было ;)
Вот бы они еще вывели какой-нибудь нормированный показатель «скиллов» человека. Например, с помощью мобильного устройства снимать телеметрию пробежки и сравнивая прошлые и текущие результаты наращивать «скиллы» типа выносливости. И народ стал бы заморачиваться не на качании персов в MMORPG, а достижении 80-го lvl тут =)
UFO landed and left these words here
Идеи генерирую регулярно. Регулярно кто-то реализовывает эти идеи раньше меня. А все потому, что никак не могу найти таких людей, которые способны загораться и работать на износ с нулевой отдачей. А сам я, к сожалению, не успеваю…

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity