GitHub е дом на над 50 милиона разработчици, които работят заедно за хостване и преглед на код, управление на проекти и изграждане на софтуер заедно.

GitHub Desktop

GitHub е мястото, където светът създава софтуер

Милиони разработчици и компании изграждат, доставят и поддържат своя софтуер на GitHub - най-голямата и най-модерна платформа за развитие в света.

Използвайте Git или плащане с SVN, като използвате уеб URL адреса.

Работете бързо с нашия официален CLI. Научете повече.

Стартиране на GitHub Desktop

Ако нищо не се случи, изтеглете GitHub Desktop и опитайте отново.

Стартиране на GitHub Desktop

Ако нищо не се случи, изтеглете GitHub Desktop и опитайте отново.

Стартиране на Xcode

Ако нищо не се случи, изтеглете Xcode и опитайте отново.

Стартиране на Visual Studio

Последен ангажимент

Git статистика

Файлове

Неуспешно зареждане на последната информация за фиксиране.

README.md

Това е чисто нов проект, базиран на оригинален surgemq.

SurgeMQ е високопроизводителна MQTT брокерска и клиентска библиотека, която се стреми да бъде напълно съвместима със спецификациите MQTT 3.1 и 3.1.1. Основният пакет, който представлява интерес, е пакетна услуга. Той предоставя MQTT сървър и клиентски услуги под формата на библиотека.

Този проект трябва да се счита за нестабилен до следващо известие.

Според спецификацията на MQTT:

MQTT е клиентски сървър за публикуване/абониране на транспортни протоколи за съобщения. Той е с леко тегло, отворен, опростен и проектиран така, че да бъде лесен за изпълнение. Тези характеристики го правят идеален за използване в много ситуации, включително ограничена среда като комуникация в контекст Machine to Machine (M2M) и Internet of Things (IoT), където се изисква малък отпечатък на кода и/или мрежовата честотна лента е с премия.

Протоколът работи през TCP/IP или други мрежови протоколи, които осигуряват подредени двупосочни връзки без загуби. Неговите характеристики включват:

  • Използване на шаблона за публикуване/абониране на съобщение, който осигурява разпространение на съобщения един към много и отделяне на приложенията.
  • Транспорт на съобщения, който е агностичен за съдържанието на полезния товар.
  • Три качества на услугата за доставка на съобщения:
    • „Най-много веднъж“, където съобщенията се доставят според най-добрите усилия на операционната среда. Може да възникне загуба на съобщение. Това ниво може да се използва, например, с данните от околния сензор, когато няма значение дали индивидуалното отчитане е загубено, тъй като следващото ще бъде публикувано скоро след това.
    • „Поне веднъж“, при което съобщенията са сигурни, че ще пристигнат, но могат да възникнат дубликати.
    • „Точно веднъж“, където съобщението е гарантирано, че ще пристигне точно веднъж. Това ниво може да се използва, например, със системи за фактуриране, при които дублирани или изгубени съобщения могат да доведат до неправилно прилагане на такси.
  • Малки транспортни режийни и обмен на протоколи са сведени до минимум за намаляване на мрежовия трафик.
  • Механизъм за уведомяване на заинтересованите страни при необичайно изключване.

Има някои много големи приложения на MQTT като Facebook Messenger. Има и активен проект на Eclipse, Paho, който предоставя мащабируеми клиентски реализации с много различни езици, включително C/C ++, Java, Python, JavaScript, C # .Net и Go.

Характеристики, ограничения и бъдеще

Характеристика

  • Поддържа QOS 0, 1 и 2 съобщения
  • Поддържа съобщения за воля
  • Поддържа задържани съобщения (добавяне/премахване)
  • Почти всичко в спецификацията, с изключение на списъка по-долу

Ограничения

  • Всички поддържани функции са само в паметта. След като сървърът се рестартира, всичко се изчиства.
    • Всички компоненти обаче са написани, за да могат да се добавят, така че човек може да пише добавки въз основа на дефинираните интерфейси Go.
  • Повторно доставяне на съобщение при повторно свързване понастоящем не се поддържа.
  • Офлайн опашката за съобщения при прекъсване на връзката не се поддържа. Въпреки че това също не е специфично изискване за MQTT.

Бъдеще

  • Повторно доставяне на съобщение (DUP)
  • $ SYS теми
  • Сървърния мост
  • Време за изчакване/повторен опит
  • Упоритост на сесията
  • По-добри модули за удостоверяване

Настоящият показател за производителност на SurgeMQ, изпълняващ всички издатели, абонати и брокери на един 4-ядрен (2.8Ghz i7) MacBook Pro, може да постигне:

  • над 400 000 MPS в 1: 1 единичен издател и конфигурация на един производител
  • над 450 000 MPS в конфигурация с вентилатор 20: 1
  • над 750 000 MPS в конфигурация за раздухване 1:20
  • над 700 000 MPS в конфигурация на пълна мрежа с 20 клиента

Освен това SurgeMQ е тестван със следните клиентски библиотеки и изглежда работи:

  • libmosquitto 1.3.5 (в C)
    • Тествано с включените тестови програми msgsps_pub и msgsps_sub
  • Paho MQTT Тест за съответствие/оперативна съвместимост (в Python). Тестван с всички 10 тестови случая, 3 не са преминали успешно. Те са
    1. „тест за офлайн съобщения на опашки“, който не се поддържа от SurgeMQ
    2. „повторно изпълнение при тест за повторно свързване“, което все още не е приложено от SurgeMQ
    3. "стартирай тест за неуспешен абонат", който не е валиден тест
  • Клиентска библиотека на Paho Go (в Go)
    • Тествано с един от тестовете в библиотеката, всъщност тези тестове вече са част от тестовете за SurgeMQ
  • Клиентска библиотека на Paho C (в C)
    • Тестван с повечето тестови случаи и не успя да същите като теста за съответствие, тъй като функциите все още не са внедрени.
    • Всъщност мисля, че има грешка в тестовия пакет, тъй като извиква функцията за манипулатор PUBLISH за съобщения, които не са PUBLISH.

Документацията е достъпна на godoc.

Повече информация относно дизайна на SurgeMQ е достъпна на zen 3.1.

Лицензиран под лиценза Apache, версия 2.0 („Лицензът“); не можете да използвате този файл, освен в съответствие с лиценза. Можете да получите копие от лиценза на адрес

Освен ако не се изисква от приложимото законодателство или не е уговорено писмено, софтуерът, разпространяван съгласно Лиценза, се разпространява на ОСНОВАНИЕ "КАКВО Е", БЕЗ ГАРАНЦИИ ИЛИ УСЛОВИЯ НА ВСЯКАКВИ ВИД, било то изрично или подразбиращо се. Вижте лиценза за конкретния език, регулиращ разрешенията и ограниченията съгласно лиценза.

pingmq е разработен, за да демонстрира различните случаи на използване на SurgeMQ. В този опростен случай на използване мрежовият администратор може да настрои системата за мониторинг на ъптайма на сървъра, като периодично изпраща ICMP ECHO_REQUEST до всички IP адреси в тяхната мрежа и изпраща резултатите на SurgeMQ.

Тогава множество клиенти могат да се абонират за резултати въз основа на различните си нужди. Например, клиент може би се интересува само от неуспешни опити за пинг, тъй като това означава, че хостът може да не работи. След определен брой откази клиентът може след това да издигне някакъв тип флаг, за да посочи хоста надолу.

pingmq е наличен тук, а документацията е достъпна на godoc. Той използва пренапрежение/пинг за изпълнение на пинговете.