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

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

рдпрд╣ рд╕рдм рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕рд╛рдеред рдпрд╣рд╛рдБ, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрдХреЗрдЬ, рд╕рд╛рде рд╣реА рд╕реНрд░реЛрдд рдХреЛрдб рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдПрдкреАрдИ рд╕рд░реНрд╡рд░ рдХреЛ рдмрддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред
/Etc/ape/ape.conf рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд░реНрд╡рд░ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдЖрдкрдХреЛ рдЙрд╕ рдкреЛрд░реНрдЯ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╕реБрди рд░рд╣рд╛ рд╣реЛрдЧрд╛ред
port = 6969
ip_listen = 69.65.59.1
рдмрд╛рд╣рд░ рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрдВрджрд░рдЧрд╛рд╣ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛:
# iptables -I INPUT -p tcp --dport 9696 -j ACCEPT
рдФрд░ рдзреВрдордХреЗрддреБ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдВ:
# /usr/bin/aped --cfg /etc/ape/ape.conf
APE рдбреЗрдореЙрди рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрдкрдиреЗ рдЗрдЪреНрдЫрд┐рдд рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд▓реНрджрдмрд╛рдЬреА рд╣реЛрдЧреАред рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрдкрдбреЛрдореЗрди рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ DNS рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдереЛрдбрд╝рд╛ рдореЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдЖрдк cPanel рдпрд╛ рдЕрдиреНрдп рд╕рдорд╛рди рдкреИрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдЙрдкрдбреЛрдореЗрди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
ape.matvey.co
рдлрд┐рд░ рдкреНрд░рдкрддреНрд░ * .ape.matvey.co рд╕реЗ ape.matvey.co рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CNAME рд░рд┐рдХреЙрд░реНрдбред
*.ape.matvey.co IN CNAME ape.matvey.co
рдЕрдм рд╕рд░реНрд╡рд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
рдкрд╣рд▓рд╛ рдЖрд╡реЗрджрди
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рд╕реБрд╡рд┐рдзрд╛ рд╕реЗ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВред ApeClientJS.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛:
APE.Config.baseUrl = 'http://matvey.co/apps/ape_test/jsf'; //
APE.Config.domain = 'matvey.co'; //
APE.Config.server = 'ape.matvey.co:6969'; // APE-
рдПрдХ рджреГрд╖реНрдЯрд╛рдВрдд рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЖрд╡реЗрджрди рджреВрдВрдЧрд╛, рдЬреЛ APE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕рд░рд▓ рдкрд╛рда рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдЧрд╛ред рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдбреЗрдорди рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рдВрдмрдВрдз http рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рдЗрдирд▓рд╛рдЗрдирдкрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред
рддреЛ, рдкрд╣рд▓реЗ рдЕрдкрдирд╛ рдкрд╛рд╕рд╡рд░реНрдб рдЗрдирд▓рд╛рдЗрдирдкрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реЗрдВред рдЖрдк рдорд╛рдирдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ '/etc/ape/inlinepush.conf' рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдлрд┐рд░ рд╣рдо Python'e (рдпрд╛ рдЬреЛ рднреА рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ) рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдкреЛрд░реНрдЯ 6969 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдк рд╕рд░реНрд╡рд░ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
import urllib2
import json
server = 'http://127.0.0.1:6969/0/?'
cmd = [{'cmd': 'inlinepush',
'params': {
'password': 'inlinepass5923',
'raw': 'DATA',
'channel': 'testchannel',
'data': {
'msg': 'Hey ya!'
}
}
}]
url = server + urllib2.quote(json.dumps(cmd))
response = urllib2.urlopen(url)
print response.read()
рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:
# python test_ape.cgi
[{"time":"1301331051","raw":"ERR","data":{"code":"401","value":"UNKNOWN_CHANNEL"}}]
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдИрдЖрд░рдЖрд░ рд╢рдмреНрдж рдХрд╛ рдЕрд░реНрде рдХреЗрд╡рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЪреИрдирд▓ рдЦрд╛рд▓реА рд╣реИ рдФрд░ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдм рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░рд▓ рдкреГрд╖реНрда рдЬреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред
рдЧреНрд░рд╛рд╣рдХ рдкреГрд╖реНрда рд╕реНрд░реЛрдд:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns= "http://www.w3.org/1999/xhtml" xml:lang= "en" dir= "ltr" lang= "en" >
<head>
<!-- APE. JSF. -->
<script type= "text/javaScript" src= "/apps/ape_test/jsf/apeClientJS.js" ></script>
</head>
<body>
<script type= "text/javaScript" >
var client = new APE.Client();
// -- , ,
function randomString(length) {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz' .split( '' );
var str = '' ;
for ( var i = 0; i < length; i++) {str += chars[Math.floor(Math.random() * chars.length)];}
return str;
}
// --
function createDiv(vartext) {
var _body = document .getElementsByTagName( 'body' ) [0];
var _div = document .createElement( 'div' );
var _text = document .createTextNode(vartext)
_div.appendChild(_text);
_body.appendChild(_div);
}
client.load();
client.addEvent( 'load' , function () {
// -- , name 15 . :)
client.core.start({ "name" :randomString(15)});
});
client.addEvent( 'ready' , function () {
createDiv( "Connected" );
client.core.join( 'testchannel' );
client.addEvent( 'multiPipeCreate' , function (pipe, options) {
});
// -- . .
client.onRaw( 'data' , function (raw, pipe) {
createDiv( 'Receiving : ' + unescape(raw.data.msg));
});
});
</script>
</body>
</html>
* This source code was highlighted with Source Code Highlighter .
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns= "http://www.w3.org/1999/xhtml" xml:lang= "en" dir= "ltr" lang= "en" >
<head>
<!-- APE. JSF. -->
<script type= "text/javaScript" src= "/apps/ape_test/jsf/apeClientJS.js" ></script>
</head>
<body>
<script type= "text/javaScript" >
var client = new APE.Client();
// -- , ,
function randomString(length) {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz' .split( '' );
var str = '' ;
for ( var i = 0; i < length; i++) {str += chars[Math.floor(Math.random() * chars.length)];}
return str;
}
// --
function createDiv(vartext) {
var _body = document .getElementsByTagName( 'body' ) [0];
var _div = document .createElement( 'div' );
var _text = document .createTextNode(vartext)
_div.appendChild(_text);
_body.appendChild(_div);
}
client.load();
client.addEvent( 'load' , function () {
// -- , name 15 . :)
client.core.start({ "name" :randomString(15)});
});
client.addEvent( 'ready' , function () {
createDiv( "Connected" );
client.core.join( 'testchannel' );
client.addEvent( 'multiPipeCreate' , function (pipe, options) {
});
// -- . .
client.onRaw( 'data' , function (raw, pipe) {
createDiv( 'Receiving : ' + unescape(raw.data.msg));
});
});
</script>
</body>
</html>
* This source code was highlighted with Source Code Highlighter .
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдПрдкреАрдИ рд╕рд░реНрд╡рд░ рд╣реИ, рдЬреЛ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ рдЗрдирд▓рд╛рдЗрдирдкрд╢ рдФрд░ рдЗрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдбреЗрдЯрд╛ рднреЗрдЬрддрд╛ рд╣реИред
рдпрджрд┐ рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдкреЗрдЬ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрди рдЙрддреНрддрд░ рдорд┐рд▓рддрд╛ рд╣реИ:
[{"time":"1301340083","raw":"pushed","data":{"value":"ok"}}]
рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкреЛрд╖рд┐рдд рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛:
Receiving : Hey ya!
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЕрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдЕрдирдиреНрдд рд▓реВрдк рдЬреЛрдбрд╝реЗрдВ, 10 рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓рд╛рдПрдВ:
# python test_ape.cgi > /dev/null 2>& 1 &

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