in JAVA, Web

java – google app engine for xmpp

출처 : http://blog.softwaregeeks.org/archives/530
위 글이 원본이며, 본인 보기 좋게 바꾸었습니다. :)

XMPP

(eXtensible Messaging and Presence Protocol)
사용 사례
– Google Talk
– Facebook

XMPP 참고 자료

* XMPP 샘플

inbound service address
xmpp_message /_ah/xmpp/message/chat/
xmpp_presence /_ah/xmpp/presence/available/
/_ah/xmpp/presence/unavailable/
/_ah/xmpp/presence/probe/
xmpp_subscribe /_ah/xmpp/subscription/subscribe/
/_ah/xmpp/subscription/subscribed/
/_ah/xmpp/subscription/unsubscribe/
/_ah/xmpp/subscription/unsubscribed/

위 테이블은 /war/WEB-INF/web.xml에 들어갈 매핑 URL로 매핑이 되었을 때 해당 서블릿으로 요청을 하게 됩니다.

사용자 등록, 삭제 처리

/war/WEB-INF/web.xml 파일에 서블릿 추가.
[sourcecode language=”xml”]
<servlet>
<servlet-name>SubscriptionServlet</servlet-name>
<servlet-class>com.ezcocoa.xmpp.SubscriptionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SubscriptionServlet</servlet-name>
<url-pattern>/_ah/xmpp/subscription/subscribe/</url-pattern>
</servlet-mapping>
[/sourcecode]

SubscriptionServlet.java
[sourcecode language=”java”]
@SuppressWarnings("serial")
public class SubscriptionServlet extends HttpServlet {

XMPPService xmppService = XMPPServiceFactory.getXMPPService();

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
doPost(request,response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
Subscription subscription = xmppService.parseSubscription(request);
String from = subscription.getFromJid().getId();
String to = subscription.getToJid().getId();

System.out.println("From : " + from);
System.out.println("To : " + to);
}
}
[/sourcecode]

구글앱엔진에서 XMPP를 쉽게 처리 하기 위해 XMPPService라는 인터페이스를 제공하며, XMPPServiceFactory를 사용하여 실제 객체를 얻어 사용합니다.

이렇게 해서 하나의 서블릿이 완성되었고, 테스트를 하기 위해 자체 웹서버를 동작시켜 생성된 URL로 접속하시면 테스트가 가능합니다.
[code]
http://localhost:8888/_ah/admin/xmpp
[/code]

Write a Comment

Comment