Lorawan-stack: рдИрд╡реЗрдВрдЯ рд╕реНрдЯреНрд░реАрдо рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХрдВрд╕реЛрд▓ рдЬрдм рдкреНрд░рд╛рд░рдВрдн рдИрд╡реЗрдВрдЯ рдирд╣реАрдВ рднреЗрдЬреЗ рдЧрдП

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рдЬреБрд▓ре░ 2020  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: TheThingsNetwork/lorawan-stack

рд╕рд╛рд░рд╛рдВрд╢

рдЪреВрдВрдХрд┐ https://github.com/TheThingsNetwork/lorawan-stack/pull/2565 рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрдВрд╕реЛрд▓ рдмреНрд▓реЙрдХ рдореЗрдВ рдИрд╡реЗрдВрдЯ рд╕реНрдЯреНрд░реАрдо рд╣реЛрддреЗ рд╣реИрдВред

рдкреНрд░рдЬрдирди рдХреЗ рдЪрд░рдг

  1. https://tti.staging1.cloud.thethings.industries/console/gateways рдкрд░
  2. рдПрдХ рд╣реА рдЯреИрдм рдореЗрдВ, рдЧреЗрдЯрд╡реЗ рдЦреЛрд▓реЗрдВ рдФрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░реЗрдбрдХреНрд░рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  3. рдкреНрд░рддреНрдпреЗрдХ рдЧреЗрдЯрд╡реЗ рдХреЗ рд▓рд┐рдП рджреЛрд╣рд░рд╛рдПрдВ

рдЕрдм рдЖрдк рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ?

рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдХрдВрд╕реЛрд▓ рд▓реЛрдб рд╣реЛрддрд╛ рд░рд╣рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЦреБрд▓реЗ рдХрдиреЗрдХреНрд╢рди" рдХреЗ рдХрд╛рд░рдг рдРрд╕рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ /api/v3/events рдЕрдиреБрд░реЛрдз рдмрдВрдж рдирд╣реАрдВ рд╣реИрдВред

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдк рдХреНрдпрд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдХрдВрд╕реЛрд▓ рдЙрддреНрддрд░рджрд╛рдпреА рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд╛рддрд╛рд╡рд░рдг

рд╡рд░реНрддрдорд╛рди master рд╢рд╛рдЦрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ 3df51cd750f57b37c3acffc28b417441babdbf30 (рдХрдВрд╕реЛрд▓ рджреНрд╡рд╛рд░рд╛ рджрд┐рдЦрд╛рдП рдЧрдП 3.8.5 рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВ)

рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрддреЗ рд╣реИрдВ?

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

рддреЛ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ:

  • рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рд╣реЗрдбрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ
  • рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЬреАрдЖрд░рдкреАрд╕реА рдЧреЗрдЯрд╡реЗ рд╣реЗрдбрд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдлреНрд▓рд╢ рдХрд░рддрд╛ рд╣реИ
  • рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрдХреЛ/рдордХреНрд╕ рд╕рд╛рдорд╛рди рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдЖрдк рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ?

рдкреНрд░рдЬрдирди рдЪрд░рдгреЛрдВ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

shared dependencies

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рддреЛ рдпрд╣ рдпрд╛ рддреЛ рд╣рдорд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдХреБрдЫ рд╣реИ (рдЬреАрдЖрд░рдкреАрд╕реА-рдЧреЗрдЯрд╡реЗ рд╣реЗрдбрд░ рдХреЛ рдареАрдХ рд╕реЗ рдлреНрд▓рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ) рдпрд╛ рд╣рдорд╛рд░реЗ рд╕рд╛рдЭрд╛ рдХреЛрдб рдореЗрдВ (рд╢рд╛рдпрдж рдХреБрдЫ рдЬреАрдЖрд░рдкреАрд╕реА рдпрд╛ http рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╣реЗрдбрд░ рдлреНрд▓рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред

bug рд▓реЗрдмрд▓ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╕рднреА 14 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХрдВрд╕реЛрд▓ рдкрд░ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрджрд┐ 6 рдЦреБрд▓реЗ рдЯреИрдм рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЯреИрдм рдореЗрдВ рд╕реЗ рдПрдХ рд░реАрдлреНрд░реЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рд▓реЛрдбрд┐рдВрдЧ рдЯреИрдм рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдирдмреНрд▓реЙрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдкреНрд░рд╛рд░рдВрдн/рд╕рдорд╛рдкреНрддрд┐ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ - 6 рдЯреИрдм рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдпрд╣ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИред

рдиреЛрдЯ: рд╕рднреА рдЯреИрдм рдЧреЗрдЯрд╡реЗ рдХреЗ рдбреЗрдЯрд╛ рджреГрд╢реНрдп рдкрд░ рд╣реИрдВ (2 рдЕрд▓рдЧ-рдЕрд▓рдЧ)

@kschiffer рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХрдВрд╕реЛрд▓ рдкрд░ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрджрд┐ 6 рдЦреБрд▓реЗ рдЯреИрдм рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЯреИрдм рдореЗрдВ рд╕реЗ рдПрдХ рд░реАрдлреНрд░реЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рд▓реЛрдбрд┐рдВрдЧ рдЯреИрдм рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдирдмреНрд▓реЙрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ рдФрд░ HTTP/2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╕реАрдорд╛ unsing рдИрд╡реЗрдВрдЯ рд╕реНрдЯреНрд░реАрдо рдХрд░рддрд╛ рд╣реИ :

рдЬрдм HTTP / 2 рдкрд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рддреЛ SSE рдЦреБрд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рддрдХ рд╕реАрдорд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЯреИрдм рдЦреЛрд▓рддреЗ рд╕рдордп рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджрд░реНрджрдирд╛рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реАрдорд╛ _рдкреНрд░рддрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░_ рд╣реИ рдФрд░ рдмрд╣реБрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ (6) рдкрд░ рд╕реЗрдЯ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреНрд░реЛрдо рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ "рдареАрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕реАрдорд╛ рдкреНрд░рддрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ + рдбреЛрдореЗрди рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк www.example1.com рдореЗрдВ рд╕рднреА рдЯреИрдм рдореЗрдВ 6 SSE рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдп 6 SSE рдХрдиреЗрдХреНрд╢рди www.example2.com. ( Stackoverflow рд╕реЗ ) рдореЗрдВ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред HTTP / 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рд╛рде _HTTP рд╕реНрдЯреНрд░реАрдо_ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдмрд╛рддрдЪреАрдд рдХреА рдЬрд╛рддреА рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 100)ред

рдореБрдЭреЗ рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░ рдХреЗрд╡рд▓ рджреЛ рдХрдиреЗрдХреНрдЯреЗрдб рдЧреЗрдЯрд╡реЗ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИред

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

рдореИрдВ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рддреЛ рдЕрдиреБрд░реЛрдз рд░реБрдХ рдЬрд╛рдПрдВрдЧреЗред рдРрд╕реЗ рдЫрд╣ рдХрдиреЗрдХреНрд╢рди рдЦреБрд▓реЗ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдмрд╛рдж рдХреЗ рд╕рднреА рдПрдХреНрд╕рдПрдЪрдЖрд░ рднреА рдардк рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

#2565 рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА рдХреНрдпреЛрдВрдХрд┐ рдЗрд╡реЗрдВрдЯ рд╕реНрдЯреНрд░реАрдо рд╣рдореЗрд╢рд╛ "рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдЯреНрд░реАрдо рд╕рдВрджреЗрд╢" рддреБрд░рдВрдд рднреЗрдЬрддреА рдереА, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реЗрдбрд░ рднреЗрдЬреЗ рдЬрд╛рддреЗ рдереЗред

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

рддреЛ рд╕рдорд╕реНрдпрд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдИрд╡реЗрдВрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ рднреЗрдЬрддреА рд╣реИрдВред рдЗрд╡реЗрдВрдЯ рд╕реНрдЯреНрд░реАрдо рдХрдиреЗрдХреНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ XHR рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рд╣рд▓ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛, рдпрд╣ pending рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рдЯрдХрд╛ рд░рд╣реЗрдЧрд╛ред рдПрдХ рдмрд╛рд░ рдЙрди рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдореЗрдВ рд╕реЗ 6 рдЦреЛрд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдиреНрдп рд╕рднреА рдХрдиреЗрдХреНрд╢рди рднреА рд▓рдЯрдХ рдЬрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдорд╡рд░реНрддреА рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдИ рд╣реИред рддреЛ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХреНрд╕рдПрдЪрдЖрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдкрд╛рд╡рддреА рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдзрд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЧрдИ рд╣реИред

#2565 рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА рдХреНрдпреЛрдВрдХрд┐ рдЗрд╡реЗрдВрдЯ рд╕реНрдЯреНрд░реАрдо рд╣рдореЗрд╢рд╛ "рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдЯреНрд░реАрдо рд╕рдВрджреЗрд╢" рднреЗрдЬреЗрдЧреАред

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдлреНрд░рдВрдЯрдПрдВрдб рдкрд░ рдХреИрд╕реЗ рдФрд░ рдХреИрд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ "рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрджреЗрд╢" рднреЗрдЬрдиреЗ рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде рд╕реНрд╡рдпрдВ рдХреЛ рдЖрдЬрдорд╛рдПрдВ:

diff --git a/pkg/events/grpc/grpc.go b/pkg/events/grpc/grpc.go
index 03f229ca0..5a305b5ac 100644
--- a/pkg/events/grpc/grpc.go
+++ b/pkg/events/grpc/grpc.go
@@ -119,6 +119,10 @@ func (srv *EventsServer) Stream(req *ttnpb.StreamEventsRequest, stream ttnpb.Eve
    if err := stream.SendHeader(metadata.MD{}); err != nil {
        return err
    }
+   if err := stream.Send(&ttnpb.Event{}); err != nil {
+       return err
+   }
+   defer stream.Send(&ttnpb.Event{})

    for {
        select {

рдпрд╣рд╛рдБ рдПрдХ рд╡реАрдбрд┐рдпреЛ рд╣реИ:
https://youtu.be/0Ir0lakV-Mc

рдореБрдЭреЗ рдлрд░реНрдХ рдирдЬрд░ рдЖрддрд╛ рд╣реИред

рдЕрдВрддрд░ рдХреЗ рдмрд┐рдирд╛ master :

htdvisser % curl -v 'http://localhost:1885/api/v3/events' --compressed -H 'Authorization: Bearer MFRWG.DVTINRZNJDORITWD64NUJRIYVIXWCKJ3Q6VYLQY.E4K63GZ3WWTZGCIFMD7XLN7A7ACA35YCQSMFCBVCTEOMATCYGG6Q' -H 'Accept: text/event-stream' -H 'Content-Type: application/json' --data-raw '{"identifiers":[{"application_ids":{"application_id":"admin-app"}}]}'
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 1885 (#0)
> POST /api/v3/events HTTP/1.1
> Host: localhost:1885
> User-Agent: curl/7.64.1
> Accept-Encoding: deflate, gzip
> Authorization: Bearer MFRWG.DVTINRZNJDORITWD64NUJRIYVIXWCKJ3Q6VYLQY.E4K63GZ3WWTZGCIFMD7XLN7A7ACA35YCQSMFCBVCTEOMATCYGG6Q
> Accept: text/event-stream
> Content-Type: application/json
> Content-Length: 68
> 
* upload completely sent off: 68 out of 68 bytes
^C

рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде master ред

htdvisser % curl -v 'http://localhost:1885/api/v3/events' --compressed -H 'Authorization: Bearer MFRWG.DVTINRZNJDORITWD64NUJRIYVIXWCKJ3Q6VYLQY.E4K63GZ3WWTZGCIFMD7XLN7A7ACA35YCQSMFCBVCTEOMATCYGG6Q' -H 'Accept: text/event-stream' -H 'Content-Type: application/json' --data-raw '{"identifiers":[{"application_ids":{"application_id":"admin-app"}}]}'
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 1885 (#0)
> POST /api/v3/events HTTP/1.1
> Host: localhost:1885
> User-Agent: curl/7.64.1
> Accept-Encoding: deflate, gzip
> Authorization: Bearer MFRWG.DVTINRZNJDORITWD64NUJRIYVIXWCKJ3Q6VYLQY.E4K63GZ3WWTZGCIFMD7XLN7A7ACA35YCQSMFCBVCTEOMATCYGG6Q
> Accept: text/event-stream
> Content-Type: application/json
> Content-Length: 68
> 
* upload completely sent off: 68 out of 68 bytes
< HTTP/1.1 200 OK
< Content-Type: text/event-stream
< Referrer-Policy: strict-origin-when-cross-origin
< X-Content-Type-Options: nosniff
< X-Frame-Options: SAMEORIGIN
< X-Request-Id: 01EDTX9RGKRGM02YZVWNB3RXJP
< X-Xss-Protection: 1; mode=block
< Date: Wed, 22 Jul 2020 09:22:32 GMT
< Transfer-Encoding: chunked
< 
{"result":{"time":"0001-01-01T00:00:00Z"}}
^C

рд╣рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

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

2 рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢реАрд░реНрд╖рд▓реЗрдЦ рддреБрд░рдВрдд рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

@kschiffer рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ 2 рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?
рдореИрдВ рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рдЧреЗрдЯрд╡реЗ рдбреЗрдЯрд╛ рдЯреИрдм рдХреЛ рд░реАрдлреНрд░реЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдирд╡реАрдирддрдо master (рдмрд┐рдирд╛ рдкреИрдЪ рдХреЗ) рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╣реИрдВрдЧ рдирд╣реАрдВ рдЕрдиреБрднрд╡ рдХрд░рддрд╛ рд╣реВрдВ

рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрд╛рдЬрд╛ рдФрд░ рдЕрд╕рдВрдмрджреНрдз рдЧреЗрдЯрд╡реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЛрдИ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рднреЗрдЬреЗрдЧрд╛ред рдлрд┐рд░ рдЗрд╕рдХреЗ рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрди рдкреГрд╖реНрда рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдирд╛ рдФрд░ рдЫрд╣ рдмрд╛рд░ рдЧреЗрдЯрд╡реЗ рд╕реВрдЪреА рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ред

рдпрд╣ рдЧреЗрдЯрд╡реЗ рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рднреА рдИрд╡реЗрдВрдЯ рд╕реНрдЯреНрд░реАрдо рд╣реЛрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдЕрдирдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдВрд╕реЛрд▓ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

#2989 . рджреНрд╡рд╛рд░рд╛ рдмрдВрдж

https://github.com/TheThingsNetwork/lorawan-stack/pull/2989 рдореЗрдВ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдПрдХ рдЕрдзрд┐рдХ рдордЬрдмреВрдд рд╕рдорд╛рдзрд╛рди рдЕрднреА рдЦреЛрдЬрд╛ рдЬрд╛рдирд╛ рдмрд╛рдХреА рд╣реИред

рддреЛ рдпрд╣ рдпрд╛ рддреЛ рд╣рдорд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдХреБрдЫ рд╣реИ (рдЬреАрдЖрд░рдкреАрд╕реА-рдЧреЗрдЯрд╡реЗ рд╣реЗрдбрд░ рдХреЛ рдареАрдХ рд╕реЗ рдлреНрд▓рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ) рдпрд╛ рд╣рдорд╛рд░реЗ рд╕рд╛рдЭрд╛ рдХреЛрдб рдореЗрдВ (рд╢рд╛рдпрдж рдХреБрдЫ рдЬреАрдЖрд░рдкреАрд╕реА рдпрд╛ http рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╣реЗрдбрд░ рдлреНрд▓рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред

bug рд▓реЗрдмрд▓ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВ рдпрджрд┐ рдЕрднреА рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

johanstokking picture johanstokking  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ecities picture ecities  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

johanstokking picture johanstokking  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ZeroSum24 picture ZeroSum24  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kschiffer picture kschiffer  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ