반응형

XMPP는 Extensible Messaging and Presence Protocol의 약자로 XML 기반의 메시지 프로토콜이다. 원래 이름은 Jabber 였으며 IETF의 개방형 표준이다.  websocket 과 같은 전송 계층에 XMPP와 같은 메시지 프로토콜을 올려서 웹 채팅 클라이언트를 만들 수 있다.


websocket 에 XMPP를 전송하기 위한 방법은 XMPP 서버가 websocket을 지원하거나, websocket 을 처리해주는 gateway를 두면 된다. 이번 포스팅에서는 openfire의 xmpp 서버를 이용해서 websocket에서 XMPP를 이용하여 웹 채팅 클라이언트를 만드는 방법을 설명하겠다. 참고로 xmpp.org 에서는 이용 가능한 서버, 클라이언트, 라이브러리를 조회할 수 있다.


1. ubuntu server에서 OpenFire 설치

- 다음과 같이 java를 설치한다.

sudo apt-get install openjdk-7-jdk

- http://www.igniterealtime.org/downloads/index.jsp 에서 Linux 용 package를 다운로드 한다. 다음에서 debian package를 다운로드 한다.

- debian package를 다음과 같이 설치한다.

sudo dpkg -i openfire_3.9.3_all.deb

- 웹 브라우저를 열어서 http://해당서버버의 IP:9090  로 접속하면 setup wizard를 볼 수 있다. Domain에 해당 서버의 도메인 네임이나 IP를 설정한다.

- admin 으로 로그인하고 시험할 user를 생성한다. 

- websocket plugin 을 설치한다. openfire websocket plugin은 https://code.google.com/p/openfire-websockets/ 에서 다운로드 가능하다. 다운로드 하고 압축을 풀면 websockets.war가 보이는데 이를 openfire의 admin 페이지의 plugin 에서 upload plugin 을 이용하여 war파일을 업로드 한다. 업로드하면 다음과 같은 화면이 보인다.


업르도하고 나서 openfire 를 재기동 해준다. 

sudo /etc/init.d/openfire stop

sudo /etc/init.d/openfire start



2. xmpp client 설치

- xmpp client를 설치한다. 이번 포스팅에서는 spark 를 이용한다. (http://www.igniterealtime.org/downloads/index.jsp에서 다운로드) 다운로드하고 설치하여 상기에서 생성한 user로 로그인 한다.

- 로그인 하면 다음과 같이 서버에 세션이 생성된다.


3. Client Web 지원을 위한 NGINX 설치

- Client에 제공하기 위한 웹 서버를 설치한다. 

sudo apt-get install nginx

반응형
Posted by alias
,