рдЬреАрдПрдИ рдПрдХреНрд╕рдПрдордкреАрдкреА (рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ) - рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдореНрдмрд░

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



рдЫрд╡рд┐



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

рдПрдХреНрд╕рдПрдордкреАрдкреА рдПрдХ рдПрдХреНрд╕рдПрдордПрд▓-рдЖрдзрд╛рд░рд┐рдд, рдУрдкрди-рд╕реЛрд░реНрд╕ рдЗрдВрд╕реНрдЯреЗрдВрдЯ рдореИрд╕реЗрдЬрд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ, рдЬрд┐рд╕реЗ рдЬреЗрдмрд░ рдХреЗ рдирд╛рдо рд╕реЗ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Google рдЯреЙрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



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

рдпрджрд┐ рдЖрдк XMPP API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ javadok рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ


рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рд╕рднреА рдХрд╛рдо com.google.appengine.api.xmpp.XMPPService рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг:



import com.google.appengine.api.xmpp.JID; import com.google.appengine.api.xmpp.Message; import com.google.appengine.api.xmpp.MessageBuilder; import com.google.appengine.api.xmpp.SendResponse; import com.google.appengine.api.xmpp.XMPPService; import com.google.appengine.api.xmpp.XMPPServiceFactory; // ... JID jid = new JID("example@gmail.com"); String msgBody = "Hello World from GAE"; Message msg = new MessageBuilder() .withRecipientJids(jid) .withBody(msgBody) .build(); boolean messageSent = false; XMPPService xmpp = XMPPServiceFactory.getXMPPService(); if (xmpp.getPresence(jid).isAvailable()) { SendResponse status = xmpp.sendMessage(msg); messageSent = (status.getStatusMap().get(jid) == SendResponse.Status.SUCCESS); } if (!messageSent) { // Send an email message instead... }
      
      







рдкрддреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ - JIDs : app-id@appspot.com (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдФрд░ рдХреБрдЫ рднреА @app-id.appspotchat.com ред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд╕реНрдХрд░рдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдмрд▓!) - рдХреБрдЫ рднреА @version.latest.app-id.appspotchat.comред рдЕрдм рддрдХ, рд╕реЗрд╡рд╛ JID рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЕрдкрдиреЗ рдбреЛрдореЗрди рдирд╛рдо рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИред



рдЧрдВрддрд╡реНрдп рдХреЛрдИ рднреА рд╡реИрдз JID рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ Google рдЯреЙрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ)ред



рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХреГрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдХрд┐рд╕реА рднреА рд╕рдВрджреЗрд╢рд╡рд╛рд╣рдХ рдХреЗ рд░реВрдк рдореЗрдВред рдЖрдк рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдордВрддреНрд░рдг рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╕реЗрд╡рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧреА рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдордВрддреНрд░рдг рднреЗрдЬ рд╕рдХрддреА рд╣реИред рдпрд╛, рдЖрд╡реЗрджрди рд╕реЗ рдПрдХ рдирд┐рдордВрддреНрд░рдг рднреЗрдЬреЗрдВ:



 xmpp.sendInvitation(jid);
      
      







рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ JID рдЕрдзрд┐рдХреГрдд рд╣реИред рдЖрдк рдХреЗрд╡рд▓ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдорд╣рд╛рди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рд╕рд╛рде:



 xmpp.getPresence(fromJid).isAvailable();
      
      







рдкрд░рд┐рдгрд╛рдо рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЬрд┐рд╕ рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдСрдирд▓рд╛рдЗрди рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ Google рдЯреЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХреГрдд рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред



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



рд╕рдВрджреЗрд╢ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ


рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ appengine-web.xml рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╕реЗрд╡рд╛ рдХреЛ "рд╕рдХреНрд╖рдо" рдХрд░рдирд╛ рд╣реЛрдЧрд╛:



 <inbound-services> <service>xmpp_message</service> </inbound-services>
      
      







рдЕрдм, рдЬрдм рдПрдХ рдкрддреЗ рдкрд░ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рддреЛ GAE URL / _ah / xmpp / рд╕рдВрджреЗрд╢ / рдЪреИрдЯ / рдХреЗ рд▓рд┐рдП рдПрдХ POST рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╕рдВрджреЗрд╢ рд╕реНрд╡рдпрдВ рд╣реЛрддрд╛ рд╣реИ, рдкреНрд░реЗрд╖рдХ рдФрд░ рд░рд┐рд╕реАрд╡рд░ рдХреА JID (рдЬрд┐рд╕ рдкрддреЗ рдкрд░ рдЗрд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛) рдФрд░ рд╢реНрд▓реЛрдХ - XML тАЛтАЛрдореЗрдВ XMPP рд╕рдВрджреЗрд╢ рдХрд╛ рдкреВрд░реНрдг рдкреНрд░рд╛рд░реВрдкред



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



рдпрд╣ рд╕реНрд╡рдпрдВ рд╕рд░реНрд╡рд▓реЗрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ:



 import java.io.IOException; import javax.servlet.http.*; import com.google.appengine.api.xmpp.JID; import com.google.appengine.api.xmpp.Message; import com.google.appengine.api.xmpp.XMPPService; import com.google.appengine.api.xmpp.XMPPServiceFactory; @SuppressWarnings("serial") public class XMPPReceiverServlet extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException { XMPPService xmpp = XMPPServiceFactory.getXMPPService(); Message message = xmpp.parseMessage(req); JID fromJid = message.getFromJid(); String body = message.getBody(); // ... } }
      
      







рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдкреАрдЖрдИ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдкрд╛рд░реНрд╕рд░ рд╣реИред



рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕ URL ( web.xml ) рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд▓реЗрдЯ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ:



 <web-app> тАж <servlet> <servlet-name>xmppreceiver</servlet-name> <servlet-class>XMPPReceiverServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>xmppreceiver</servlet-name> <url-pattern>/_ah/xmpp/message/chat/</url-pattern> </servlet-mapping> тАж <web-app>
      
      







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



рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ


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



рдпрд╣ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдореИрдВ рдЗрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ: http://samples-gae.appspot.com/samples/xmpp.html



рдкреНрд░рд▓реЗрдЦрди рдЕрдиреБрднрд╛рдЧ (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ): рдПрдХреНрд╕рдПрдордкреАрдкреА рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рдЕрд╡рд▓реЛрдХрди



рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!



рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ 02-02-2010:



рдЬреАрдПрдИ рдПрд╕рдбреАрдХреЗ 1.4.2 рдХреА рдирдИ рд░рд┐рд▓реАрдЬ, рдПрдХреНрд╕рдПрдордкреАрдкреА рдХреЗ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде, рдмрд╣реБрдд рдХреБрдЫ рдирдпрд╛ рд╣реИред



All Articles