PHP + ActiveMQ рдореЗрдВ ICQ рдмрдЧ-рдореБрдЦрдмрд┐рд░

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

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ ICQ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рддреНрд╡рд░рд┐рдд рд╕реВрдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдЯрдХрдерд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдПрдХ ActiveMQ рд╕рдВрджреЗрд╢ рдмреНрд░реЛрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдордзреНрдпрд╡рд░реНрддреА рд▓рд┐рдВрдХ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕реЗ MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореБрдЦреНрдп рднрд╛рдЧ PHP рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ ICQ рдмреЙрдЯ рд╣реИ, рдпрд╣ рдЙрд╕рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ рдХрд┐ рд╡рд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреИрдирд▓ рдХреЛ рдмреНрд░реЛрдХрд░ рдХреЛ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ ICQ рдирдВрдмрд░реЛрдВ рдХреЛ рдлреЙрд░рд╡рд░реНрдб рдореИрд╕реЗрдЬ рдореЗрдВ рд╕реБрдиреЗред рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рднреА рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЗрд╕ PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд┐рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


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

ActiveMQ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


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

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рддрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдХреБрдЫ рджреВрд░ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ Windows рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ ActiveMQ рд╕реНрдХреНрд░рд┐рдкреНрдЯ \ bin \ win32 \ InstallService.bat рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕реНрдерд╛рдкрд┐рдд JAVA рдорд╢реАрди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реНрд╡рдпрдВ рджреНрд╡рд╛рд░рд╛ рдорд╛рди рд▓реА рдЧрдИ рд╣реИред
рдЖрдк "рдкреНрд░рд╢рд╛рд╕рди" -> "рд╕реЗрд╡рд╛рдУрдВ" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реВрдЪреА рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ 10 рд╕реЗрдХрдВрдб рдмрд╛рдж рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ рд╕реВрдЪреА 2003 рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ, Win 2003 рд╕рд░реНрд╡рд░ рдкрд░ рдореБрдЭреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА: рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рддреБрд░рдВрдд рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛, рд▓реЙрдЧ рдФрд░ Google рдореЗрдВ рдПрдХ рд▓рдВрдмреА рдЦреБрджрд╛рдИ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ ActiveMQ \ bin \ win32 рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рд╣реИред

ActiveMQ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ \ conf \ activemq.xml рдЦреЛрд▓рдиреА рд╣реЛрдЧреА
рд╣рдо рдЕрдкрдиреЗ рдмреНрд░реЛрдХрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:
<broker xmlns = "activemq.apache.org/schema/core" brokerName = "localhost" dataDirectory = "${activemq.base}/data" destroyApplicationContextOnStop = "true" persistent = "true" useShutdownHook = "false" >
<broker xmlns = "activemq.apache.org/schema/core" brokerName = "localhost" dataDirectory = "${activemq.base}/data" destroyApplicationContextOnStop = "true" persistent = "true" useShutdownHook = "false" >

рд▓рдЧрд╛рддрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рд╕рднреА рд╕рдВрджреЗрд╢ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд╕реЗрд╡рд╛ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЦреЛ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗред рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЕрдкрдиреЗ рд▓рд┐рдП рддрдп рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд kahaDB рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдкрд╛рд░рджрд░реНрд╢реА MySQL рдореЗрдВ рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ред рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЗрд╕рдореЗрдВ рд╕реЗ mysql-рдХрдиреЗрдХреНрдЯрд░-рдЬрд╛рд╡рд╛-5.1.14-bin.jar рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ \ lib рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВред MySQL рдореЗрдВ рд╣реА, рд╣рдо activemq рдирд╛рдордХ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рд╣реА рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ activemq рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВрдЧреЗред рд╣рдо рдЗрд╕ рд╕рдм рдХрд╛ рд╡рд░реНрдгрди рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдХрд░реЗрдВрдЧреЗ:
<persistenceAdapter > <br/>
<jdbcPersistenceAdapter dataSource = "#mysql-ds" /> <br/>
</persistenceAdapter > <br/>
<br/>
<bean id = "mysql-ds" class = "org.apache.commons.dbcp.BasicDataSource" destroy-method = "close" > <br/>
<property name = "driverClassName" value = "com.mysql.jdbc.Driver" /> <br/>
<property name = "url" value = "jdbc:mysql://localhost/activemq?relaxAutoCommit=true" /> <br/>
<property name = "username" value = "activemq" /> <br/>
<property name = "password" value = "activemq" /> <br/>
<property name = "poolPreparedStatements" value = "true" /> <br/>
</bean >

рдмреНрд▓реЙрдХ рдХреЛ рдЯреИрдЧ рдХреЗ рдмрд╛рд╣рд░ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ 3 рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдЧрд░ рдРрд╕рд╛ рд╣реБрдЖ, рддреЛ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рд╕рдВрднрд╡ рдХрдиреЗрдХреНрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ:
<transportConnectors > <br/>
<transportConnector name = "openwire" uri = "tcp://0.0.0.0:61616" /> <br/>
<transportConnector name = "openwire2" uri = "stomp://0.0.0.0:61613" /> <br/>
</transportConnectors >
рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯ рдХрд┐рдП рд╣реИрдВ, рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ PHP рдореЗрдВ рдореИрдВ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП STOMP рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдбреЗрд▓реНрдлреА рдХреЗ рддрд╣рдд рдореИрдВ рдПрдХ рдШрдЯрдХ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдЬреЛ рдЯреАрд╕реАрдкреА рдкрд░ рдХрд╛рдлреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд▓рд╛, рд╣рдо рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд░реЗрдВрдЧреЗ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреБрдХрдбрд╝реЗ рдХреЛ рдмреНрд▓реЙрдХ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
<plugins > <br/>
<jaasAuthenticationPlugin configuration = "activemq-domain" /> <br/>
<authorizationPlugin > <br/>
<map > <br/>
<authorizationMap > <br/>
<authorizationEntries > <br/>
<authorizationEntry queue = ">" read = "admins" write = "admins" admin = "admins" /> <br/>
<authorizationEntry queue = "icq.>" read = "users" write = "users" admin = "admins" /> <br/>
<authorizationEntry topic = "ActiveMQ.Advisory.>" read = "guests,users" write = "guests,users" admin = "guests,users" /> <br/>
</authorizationEntries > <br/>
</authorizationMap > <br/>
</map > <br/>
</authorizationPlugin > <br/>
</plugins >

рдЕрдм рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде / conf рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ group.properties рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
admins=system,sslclient,client,broker1,broker2
users=icq
guests=guest

рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░, users.properties рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдФрд░ рдЙрд╕рдореЗрдВ рд▓рд┐рдЦреЗрдВ:
system=password
icq=secret
рдЖрдкрдХреЛ login.config рдлрд╝рд╛рдЗрд▓ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдЙрд╕реЗ / conf рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбреНрд░реЙрдк рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕реЗрд╡рд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрддреЗ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ http: // localhost: 8161 / admin / , рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЖрдкрдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рджреНрд╡рд╛рд░рд╛ рдмрдзрд╛рдИ рджреА рдЬрд╛рдПрдЧреА, рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдХреНрдпреБрд╕ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдирд╛рдо рдЗрдХреНрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдХрддрд╛рд░ рдмрдирд╛рдПрдВред

ICQ рдмреЙрдЯ рд▓рд┐рдкрд┐


рдореИрдВрдиреЗ WebIcqPro рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдмреЙрдЯ рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛, рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рд╕реНрдерд┐рд░ рд╣реИред рдЖрдкрдХреЛ рдмреНрд░реЛрдХрд░ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдореИрдВрдиреЗ STOMP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд░ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реНрдерд┐рд░ рд╕рдорд╛рдзрд╛рди рдкрд╛рдпрд╛, рд▓реЗрдХрд┐рди рдЬрдм рдХрдиреЗрдХреНрд╢рди рдЯреВрдЯ рдЧрдпрд╛ рдерд╛ рддреЛ рдЗрд╕реЗ рдЦрдЯрдЦрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореИрдВ рдпрд╣рд╛рдВ рд╕рднреА рдмреЙрдЯ рдХреЛрдб рдирд╣реАрдВ рд▓рд╛рдКрдВрдЧрд╛; рдЬреЛ рдХреЛрдИ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрдЪреНрдЫреБрдХ рд╣реИ рд╡рд╣ рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ ред

рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреЙрдЯ рдЪрд▓рд╛рдПрдВ:
"C: \ Program Files \ PHP \ php" C: \ icqbot \ icq.php
рдпрджрд┐ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рдЙрд╕реЗ ActiveMQ рдФрд░ ICQ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдлрд┐рд░ "рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ ..." рдЪреИрдирд▓ рд╕реБрдирдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░реАрдХреНрд╖рдг рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕рдВрдЧреНрд░рд╣ рд╕реЗ send.php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<?php <br/>
require_once 'Stomp.php' ; <br/>
$c = new StompConnection ( "localhost" ) ; <br/>
$result = $c -> connect ( "icq" , "bot" ) ; <br/>
<br/>
$mess = '<?xml version="1.0" encoding="windows-1251"?><br/>
<reference><br/>
<type>send</type><br/>
<to>111111111</to><br/>
<from>Test send:</from><br/>
<mes> message</mes><br/>
</reference>'
; <br/>
<br/>
$mess = iconv ( 'cp1251' , 'UTF-8' , $mess ) ; <br/>
$c -> send ( "/queue/icq" , $mess , array ( 'persistent' => 'true' ) ) ; <br/>
$c -> disconnect ( ) ; <br/>
?>
рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореБрдЭреЗ рдПрдирдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░рдиреА рдкрдбрд╝реА рддрд╛рдХрд┐ рдореИрдВ рд░реВрд╕реА рдкрд╛рда рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХреВрдВ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рд░реВрдкрд╛рдВрддрд░рдг рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рди рд╣реЛрдВ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред Send.php рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд╕рдВрджреЗрд╢ рдирд┐рд░реНрджрд┐рд╖реНрдЯ UIN рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ рддрдереНрдп рд▓реЙрдЧ рдореЗрдВ рднреА рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдмреЙрдЯ рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдПрдВ


рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдПрдирдЯреА рд░рд┐рд╕реЛрд░реНрд╕ рдХрд┐рдЯ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЬреЛ рдбрд╛рдЙрдирд▓реЛрдб рди рд╣реЛред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореМрдЬреВрдж рд╕рднреА рдмреЙрдЯ рдлрд╛рдЗрд▓реЗрдВ C: \ icqbot рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВ ред рдХрдВрд╕реЛрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рд▓рд┐рдЦреЗрдВ
"C: \ Program Files \ Windows рд╕рдВрд╕рд╛рдзрди рдХрд┐рдЯ \ Instsrv.exe" ICQBot "C: \ Program Files \ Windows рд╕рдВрд╕рд╛рдзрди рдХрд┐рдЯ \ Srvany.exe"
рдЕрдЧрд▓рд╛, regedit рдЪрд▓рд╛рдПрдВ рдФрд░ рдЙрд╕рдХреЗ рдЕрдВрджрд░ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ ICQBot рд╕реЗрдХреНрд╢рди рдкрд░ рдЬрд╛рдПрдВ , рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдХреНрд╢рди рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдорд╛рди "C: \ Program Files \ php.exe" C: \ icqbot \ icq рдХреЗ рд╕рд╛рде REG_SST рдХреЛрдб рдЯрд╛рдЗрдк рдХрд░реЗрдВред php
рдЕрдЧрд▓рд╛, рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рд╣рдорд╛рд░реЗ рдмреЙрдЯ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ, рдЕрдм рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд╛рдпрддреНрдд рд╣реИред

рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдкрдХрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛


рд╣рдорд╛рд░рд╛ рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛ рд╣реИ, рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдирд╛ рдФрд░ рдЖрдИрд╕реАрдХреНрдпреВ рдкрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рднреЗрдЬрдирд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдЙрди рд╕рднреА рд▓рд┐рдкрд┐рдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдирд┐рдпрдВрддреНрд░рдг рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
<?php <br/>
ini_set ( 'display_errors' , 0 ) ; <br/>
error_reporting ( 2 ) ; <br/>
<br/>
if ( $send_report ) { <br/>
include_once ( "Stomp.php" ) ; <br/>
<br/>
function send_report ( $message , $to = '1212312' , $from = 'SENDER' ) { <br/>
global $send_report , $stomp_server , $stomp_url , $stomp_user , $stomp_psw ; <br/>
if ( ! $send_report ) return false ; <br/>
$c = new StompConnection ( $stomp_server ) ; <br/>
$result = $c -> connect ( $stomp_user , $stomp_psw ) ; <br/>
if ( ! is_array ( $to ) ) $to = array ( $to ) ; <br/>
foreach ( $to as $i ) { <br/>
$mess = '<?xml version="1.0" encoding="windows-1251"?><br/>
<reference><br/>
<type>send</type><br/>
<to>'
. $i . '</to><br/>
<from>'
. $from . '</from><br/>
<mes>'
. $message . '</mes><br/>
</reference>'
; <br/>
$c -> send ( $stomp_url , iconv ( 'cp1251' , 'UTF-8' , $mess ) , array ( 'persistent' => 'true' ) ) ; <br/>
} <br/>
$c -> disconnect ( ) ; <br/>
} <br/>
} <br/>
<br/>
function user_log ( $errno , $errmsg , $file , $line ) { <br/>
global $send_report ; <br/>
if ( $errno == 2 ) { <br/>
$filename = strftime ( '%d.%m.%Y %H-%M-%S_' ) . $_REQUEST [ 'PHPSESSID' ] . '.err' ; <br/>
$fl = fopen ( 'errors/' . $filename , 'w' ) ; <br/>
$_SESSION [ 'ERROR_TEXT' ] = 'WARNING: ' . $errmsg . ' in ' . $file . ' on line ' . $line ; <br/>
$_SESSION [ 'ERROR_TIME' ] = strftime ( '%d.%m.%Y %H-%M-%S' ) ; <br/>
$_SESSION [ 'ERROR_PHPSESSID' ] = $_REQUEST [ 'PHPSESSID' ] ; <br/>
$_SESSION [ 'ERROR_TYPE' ] = 'PHP SCRIPT ERROR' ; <br/>
fwrite ( $fl , serialize ( $_SESSION ) ) ; <br/>
fclose ( $fl ) ; <br/>
if ( $send_report ) send_report ( $_SESSION [ 'ERROR_TEXT' ] ) ; <br/>
} <br/>
} <br/>
<br/>
set_error_handler ( 'user_log' ) ; <br/>
?>
рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрди рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреА рд╕рдВрдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреНрд░рд┐рдкреНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реВрдВ, рдЬреЛ рдореИрдВ рд╕рднреА рдХреЛ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

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

рдкреНрд░рдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА
  1. ActiveMQ 5.4.2
  2. ActiveMQ рдХреЗ рд▓рд┐рдП рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ
  3. MySQL рдХрдиреЗрдХреНрдЯрд░
  4. PHP рдХреЗ рд▓рд┐рдП WebICQPro рд▓рд╛рдЗрдмреНрд░реЗрд░реА
  5. PHP рдХреЗ рд▓рд┐рдП STOMP рд▓рд╛рдЗрдмреНрд░реЗрд░реА
  6. рдмреЙрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдПрд░рд░ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдХрд╛ рддреИрдпрд╛рд░-рддреИрдпрд╛рд░ рд╕реЗрдЯ
  7. Windows NT рд╕рдВрд╕рд╛рдзрди рдХрд┐рдЯ

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


All Articles