рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдФрд░ WAMP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ PubSub

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

рдпреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрдИ рдХреЗ рд▓рд┐рдП рдЬрд╛рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдЗрдВрдЯрд░рдкреНрд░реЛрд╕реЗрд╕ рд╕рдВрдЪрд╛рд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:


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

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

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

рд╕рд╛рдЗрдЯ рдХрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣рд┐рд╕реНрд╕рд╛ред

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

ab.connect( //  'ws://site.com:8080', //     . //    session, //          function (session) { //   .    - , //     . session.subscribe('comments', onNewComment); }, //     . //   ,    , //        . function onClose() { alert('   '); }, { //     'maxRetries': 100, 'retryDelay': 5000 } ); //     comments function onNewComment(topic, data) { //topic -  ,     // data  ,  . //       content  author. console.log(' ', data.author, data.content); } 


рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрди 'рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ' рдХреЛ рдЪреИрдирд▓ рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдРрд╕рд╛ рдирд╛рдордХрд░рдг рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рдЪреИрдирд▓ рдХреЛ URI рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рдд рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЪреИрдирд▓ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ site.com/comments site.com/comments ред рдмрджрд▓реЗ рдореЗрдВ, рдЪреИрдирд▓ URI рдХреЛ "рдХреЙрдореНрдкреИрдХреНрдЯ URI" рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - CURIEред рдЗрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдкреГрд╖реНрда рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдирдИ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡реЗ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪреИрдирд▓ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ: site.com/comments/page/1 site.com/comments/page/1 ред рдмреЗрд╢рдХ, рдпреВрдЖрд░рдЖрдИ рдХреЗ рдЧрдарди рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИ: рдЖрдк рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдЪреИрдирд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рд╛рдЗрдЯ рдХрд╛ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдбред

PHP рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, ZMQ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ http рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЬрдм рдПрдХ рдирдИ рдЯрд┐рдкреНрдкрдгреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реЗрдЬрддрд╛ рд╣реИ рдФрд░ ZMQ рдХрддрд╛рд░ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рд╢рд╛рдлрд╝реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдореЙрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
 //  ,   ajax     $comment=array('author'=>'', 'content'=>', !'); //   ... $commentModel->save($comment); //       $loop = React\EventLoop\Factory::create(); $context = new React\ZMQ\Context($loop); $push = $context->getSocket(\ZMQ::SOCKET_PUSH); //   ZMQ   ,   ,    $push->connect('tcp://127.0.0.1:8081'); //     json $push->send(json_encode($comment)); //tick     . //     -  . $loop->tick(); 


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

рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:
 //websocket-   React $loop = React\EventLoop\Factory::create(); //processor -     WAMP,     . //    WampServerInterface. //       //        http-. $processor = new WampProcessor(); //    http-  ZMQ   8081... $context = new React\ZMQ\Context($loop); $pull = $context->getSocket(ZMQ::SOCKET_PULL); $pull->bind('tcp://127.0.0.1:8081'); //        'onComment'  'processor' $pull->on('message', array($processor, 'onComment')); //     -    8080   IP $app = new \components\SocketServer\App('site.com', 8080, '0.0.0.0', $loop); //          , //     (Ratchet    Symfony). //     ,    . //  ""     WampProcessor. $app->route('/', $processor, array('*')); //... $app->run(); 


рд░реИрдореНрдкрд╣реЗрдЯ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡реИрдореНрдкрдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд░реНрдЧ рдХреА рд╕рднреА рд╡рд┐рдзрд┐рдпрд╛рдБ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реЛрдВрдЧреА; рдЙрдирдореЗрдВ рд╕реЗ рдпрд╣ рдХреЗрд╡рд▓ рдШрдЯрдирд╛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ - " рдСрдирдХрдордореЗрдВрдЯ " рд╡рд┐рдзрд┐:
 /** * @param string   JSON,   ZeroMQ */ public function onComment($json) { $comment = json_decode($json, true); //  ,         if (!array_key_exists('comments', $this->subscribedTopics)) { return; } $topic = $this->subscribedTopics['comments']; //     . $topic->broadcast($comment); } 


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

рдореИрд╕реЗрдЬрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреНрд░реЛрдо рдХрдВрд╕реЛрд▓ ("рдиреЗрдЯрд╡рд░реНрдХ" рдЯреИрдм рдореЗрдВ "рд╡реЗрдмрд╕реЛрдХреЗрдЯ" рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдХреЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЪреИрдирд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреАред

рдирд┐рд╖реНрдХрд░реНрд╖ред

рддреЛ, WebSockets рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдФрд░ WAMP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк Pubbub рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдм рдкреЗрдЬ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдЕрджреНрдпрддрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рддрд░реНрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдиреЛрдбрдЬ рдФрд░ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдореЗрдВ, рдЬрд╣рд╛рдВ PHP рдкреНрд░рдореБрдЦ рд╕рд░реНрд╡рд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИ, рд╡рд░реНрдгрд┐рдд рд╡рд┐рдХрд▓реНрдк рдХрд╛рдлреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдиреНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЕрдзрд┐рдХ "рд╕реНрдЯреЛрдХ" рддрд░реАрдХреЗ (рдЬреИрд╕реЗ рдХрд┐ рдЖрд╡рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЖрд╡рдзрд┐рдХ рд╕рд░реНрд╡рд░ рдорддрджрд╛рди)ред рдореМрдЬреВрджрд╛ рд╕рд╛рдЗрдЯ рдкрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрд╡рд▓ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрд╣рд╛рдВ рдХреБрдЫ рдШрдЯрдирд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рд╕рд╛рдЗрдЯ рд╕реЗ рдбреЗрдорди-рд╣реИрдВрдбрд▓рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЦреНрдп рд▓рд┐рдВрдХ:

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


All Articles