Node.js рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ред рд╡реЗрдм рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Mqtt рдкреНрд░реЛрдЯреЛрдХреЙрд▓

рд╡реЗрдм рд╕реЙрдХреЗрдЯ рддрдХрдиреАрдХ рдХрд┐рд╕реА рд╕рд░реНрд╡рд░ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬреЛ REST-API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗрдм рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реЗ рдЕрдХреНрд╕рд░ рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдпрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреЗрд╢реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рджреЛрдиреЛрдВ рддрд░реАрдХреЗ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗрдм рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП mqtt рд╕рд░реНрд╡рд░ (рдЗрд╕реЗ рдкрд╣рд▓реЗ mqtt рджрд▓рд╛рд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛)ред

рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд┐рд╡рд╛рджреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ mqtt рд╕рд░реНрд╡рд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЦрд░рдЧреЛрд╢ред

рд╡реЗрдм рд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рддрдм рддрдХ рдмрд╣реБрдд рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рдкрд╛рд░ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЕрдХреНрд╕рд░ рдХрдиреЗрдХреНрд╢рди рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдХрд╛рдо рдЬрд┐рд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рд╣реИ, рд╡рд╣ рдХрдиреЗрдХреНрд╢рди рдмреНрд░реЗрдХ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рд╕реНрдерд┐рддрд┐ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рд╡рд┐рдпреЛрдЧ рдФрд░ рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХреЗ рджреМрд░рд╛рди, рдЧреНрд░рд╛рд╣рдХ рдирдП рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдирдП рд╕рдВрджреЗрд╢ рднреЗрдЬреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЦреЛ рдЬрд╛рдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП, рдФрд░ рдЙрдирдХреЗ рджреЛрд╣рд░рд╛рдпрд╛ рд╡рд┐рддрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рд╕реНрддрд░ рдкрд░ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрддрд░ рдкрд░" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ (рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реНрддрд░ рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛)ред

рдЬреИрд╕реЗ рд╣реА рд╣рдордиреЗ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдЬреЛрдбрд╝рд╛, рд╕рднреА рд╕рдВрджреЗрд╢ рдЖрдиреЗ рд╢реБрд░реВ рд╣реЛ рдЧрдП, рд▓реЗрдХрд┐рди рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдирдХрд▓реА рд╕рдВрджреЗрд╢ рдереЗ, рдЪреВрдВрдХрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рдерд╛, рдФрд░ рдЗрд╕ рддрдереНрдп рдХреА рдкреБрд╖реНрдЯрд┐ рдПрдХ рдХрдЯреЗ рд╣реБрдП рдХрдиреЗрдХреНрд╢рди рдХреЗ рдХрд╛рд░рдг рдЦреЛ рдЧрдИ рдереАред рдФрд░ рдЖрдкрдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рд╛рде, рдЗрд╕рдХреА рджрдХреНрд╖рддрд╛ рднреА рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡реЗ рдЕрдХреНрд╕рд░ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд▓реЛрдЪрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореВрд▓ рд╡реЗрдм рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рднрд╛рд╡реА рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕рд╛рдордВрдЬрд╕реНрдп рддрд░реНрдХ рдФрд░ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг (рдореИрдВ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдкреБрди: рд╡рд┐рддрд░рдг рддрд░реНрдХ рд╕реЙрдХреЗрдЯ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред)ред

рдЗрд╕ рддрд░реНрдХ рдХреЛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реНрддрд░ рддрдХ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рдХреБрд╢рд▓ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореМрдЬреВрдж рд╣реИ - рдпрд╣ mqtt рд╣реИред Mqtt рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдПрдВрдбреА рд╕реНрдЯреИрдирдлреЛрд░реНрдб-рдХреНрд▓рд╛рд░реНрдХ (IBM) рдФрд░ рдЕрд░реНрд▓реЗрди рдиреЗрдкрд░ (Arcom) рджреНрд╡рд╛рд░рд╛ 1999 рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред MQTT 3.1.1 рд╡рд┐рдирд┐рд░реНрджреЗрд╢ 2014 рдореЗрдВ OASIS рд╕рдВрдШ рджреНрд╡рд╛рд░рд╛ рдорд╛рдирдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

Mqtt рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ "рд╕реЗрд╡рд╛ рдХреА рдЧреБрдгрд╡рддреНрддрд╛" (qos) рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ:
0 - рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рд╕рдВрджреЗрд╢ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
1 - рд╕рдВрджреЗрд╢ рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ;
2 - рд╕рдВрджреЗрд╢ рдХреА рдЧрд╛рд░рдВрдЯреА рдФрд░ рдЧрд╛рд░рдВрдЯреА рдПрдХ рдмрд╛рд░ рджреА рдЬрд╛рддреА рд╣реИред

рдпрд╣реА рд╣реИ, mqtt рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЧрд╛рд░рдВрдЯреАрдХреГрдд рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдПрдЬреЗрдВрдбрд╛ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╡рд╛рд▓ рд╣реА рдирд╣реАрдВред

рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧред

рд╡реЗрдм рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рд╕рднреА рдХрдиреЗрдХреНрдЯреЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рдЦреБрд▓реЗ рдХрдиреЗрдХреНрд╢рди рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрджреЗрд╢ рди рд╣реЛред рдпрд╣ рд▓реЛрдб REST-API рдореЗрдВ рд▓реЛрдб рд╕реЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реИ, рдЬреЛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреНрд░рд╡рд╛рд╣ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдкрд░ рдЦреБрд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдмреЛрдЭ рдкрд░реАрдХреНрд╖рдг рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЦреБрд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдкрд░ рд▓реЛрдб рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗ рдмрд┐рдирд╛, рднреЗрдЬреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡реЗрджрди рдХреЗ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдХреНрд╕рд░ рдПрдХ рдЧрд▓рдд рдзрд╛рд░рдгрд╛ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред

рдпрджрд┐ рд╣рдо рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рд╕рднреА рдХрд╛рдо рдПрдХ рд╡рд┐рд╢реЗрд╖ mqtt рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ рдиреЛрдбрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡реЗрдм рд╕реЙрдХреЗрдЯ (рдпрд╛ рдЯреАрд╕реАрдкреА рдкрд░ рдХреЗрд╡рд▓ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ mqtt рджреЛрдиреЛрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ) рдПрдХ mqtt рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде, рдФрд░ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдиреЛрдб рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ mqtt рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░реЗрдВред

рдпрджрд┐ рдПрдХ mqtt рд╕рд░реНрд╡рд░ рдХреЗ рд╕рдВрд╕рд╛рдзрди рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдиреЛрдбрдЬ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ mqtt рд╕рд░реНрд╡рд░ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдм рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред

Mqtt рд╕рд░реНрд╡рд░ рдпрд╛ рдмреНрд░реЛрдХрд░, рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ / рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рдореЙрдбрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рд╡рд┐рд╖рдп рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рд╕рдВрджреЗрд╢ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддрд╛ рд╣реИред рдкреНрд░реЗрд╖рдХ рдФрд░ рд░рд┐рд╕реАрд╡рд░ рджреЛрдиреЛрдВ рдХреЗ рджреЛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИрдВ: рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдб (рдбрд┐рд╡рд╛рдЗрд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛) рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо)ред

рдбрд┐рд╡рд╛рдЗрд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рджрд╕реНрдпрддрд╛ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗред рдЙрдкрдХрд░рдг рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо, рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рдореЗрдВ рдирд┐рд░реНрдгрд╛рдпрдХ рднреВрдорд┐рдХрд╛ рдирд╣реАрдВ рдирд┐рднрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╖рдпреЛрдВ рдореЗрдВ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ mqtt рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреБрд╕реНрддрдХрд╛рд▓рдп github.com/eclipse/paho.mqtt.javascript рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлреНрд░реА рд╕рд╣рд┐рдд рдХрдИ рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо emqx рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ docker- рд░рдЪрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ github.com/apapacy/tut-mqtt )ред

рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдб, рдпреВрдЬрд░рдиреЗрдо рдФрд░ рд╕рдВрджреЗрд╢ рдкрд╛рда рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ:

<script src="/paho-mqtt.js"></script> <script src="/messages.js"></script> <form name="sender" onsubmit="return false"> <input type="text" name="user"> <input type="text" name="client"> <input type="text" name="message"> <input type="button" onclick="connect()" value="connect"> <input type="button" onclick="send()" value="send"> </form> 


рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ message.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 var client; var connectOptions = { timeout: 30, reconnect: true, cleanSession: false, mqttVersion: 4, keepAliveInterval: 10, onSuccess: onConnect, onFailure: onFailure } function connect() { try { client = new Paho.Client('localhost', 8083, '/mqtt', document.forms.sender.client.value); connectOptions.userName = document.forms.sender.user.value; client.connect(connectOptions); } catch (ex) { console.log(ex); } } function onConnect() { console.log('on connect'); client.onMessageArrived = function(message) { console.log("onMessageArrived: " + message.payloadString); } client.subscribe("test", { qos: 2 }); } function onFailure(err) { console.log('on failure', JSON.stringify(err)); } function send() { var message = new Paho.Message(document.forms.sender.message.value); message.destinationName = "test"; message.qos = 2; client.send(message); } 


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ index.html рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, clientId, userName, рд╕рдВрджреЗрд╢ рдкрд╛рда рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдФрд░ рдХрдИ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ (рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рд╖рдп рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рд▓рд┐рдпрд╛ рд╣реИ)ред

рдЕрдм рдПрдХ рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╛ рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреИрдм рдЦреЛрд▓реЗрдВ, рдФрд░ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗрдВ (рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ) рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдбред рдкрд╣рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдХреБрдЫ рдФрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ, рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡реЗ рджреЛрдиреЛрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдкрд╛рд╕ рдЖрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдб рд╣реИрдВ рдФрд░ рд╡реЗ рджреЛрдиреЛрдВ рд╡рд┐рд╖рдп рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд┐рдП рдЧрдП рд╣реИрдВред

рдЕрдм рджреВрд╕рд░рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдпрд╛ рджреВрд╕рд░рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреИрдм) рдмрдВрдж рдХрд░реЗрдВ, рдФрд░ рдХреБрдЫ рдФрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рджреВрд╕рд░рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ, рдФрд░ рдЙрд╕реА рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдб рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗрдВред рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рд╡рд╣ рд╕рднреА рд╕рдВрджреЗрд╢ рдорд┐рд▓реЗ рд╣реИрдВ рдЬреЛ рдЙрд╕ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рднреЗрдЬреЗ рдЧрдП рдереЗ рдЬрдм рджреВрд╕рд░рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рджреВрд╕рд░рд╛ рдЯреИрдм) рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реБрдЖ рдХреНрдпреЛрдВрдХрд┐:

  • рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ рд╕рдордп, рдЧреБрдгрд╡рддреНрддрд╛ рд╕реНрддрд░ qos = 2 рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
  • рдЖрдк рдкрд╣рд▓реЗ qos = 2 рд╕реЗрдЯ рдХрд░рдХреЗ рдПрдХ рд╣реА рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╡рд┐рд╖рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдП рд╣реИрдВ;
  • рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдХрд▓реНрдк рдХреНрд▓реАрди рд╕реЗрд╢рди рдкрд░ рд╕реЗрдЯ рд╣реИрдВ: рдЕрд╕рддреНрдпред

рд╕реИрдВрдкрд▓ рдХреЛрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

apapacy@gmail.com
29 рд╕рд┐рддрдВрдмрд░, 2019

Source: https://habr.com/ru/post/hi469315/


All Articles