Kali ini akan dijelaskan cara mengirimkan text dari android ke broker ActiveMQ menggunakan stomp. Telebih dahulu yang dilakukan adalah download perlengkapan yang dibutuhkan.
Setelah keduanya tersedia, extract activemq, kemudian tambahkan code berikut pada activemq.xml
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613"/>
pada <transportConnectors>, sehingga menjadi:
<transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/> <transportConnector name="stomp" uri="stomp://0.0.0.0:61613"/> </transportConnectors>
Kemudian impan dan jalankan activemq:
Buat project pada android dengan nama Stomp, kemudian copy stompj-0.5.jar pada directory libs.
Klik kanan pada stompj-0.5.jar -> Build Path -> Add to Build Path.
Patikan pada properties project, lib stomp-j sudah ada.
Ganti code pada layout main.xml dengan code berikut berikut:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="Kirim" /> </RelativeLayout>
Ganti code pada MainActivity.java dengan code berikut:
package org.akhal.stomp; import pk.aamir.stompj.Connection; import pk.aamir.stompj.StompJException; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.content.Context; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { Button bt1; Connection con; ReadThread mReadThread; Context context; Handler threadHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); context = this; threadHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: Toast.makeText(getApplicationContext(), "Gagal mengirim text", Toast.LENGTH_LONG).show(); break; case 1: Toast.makeText(getApplicationContext(), "Text berhasil dikirim", Toast.LENGTH_LONG).show(); break; } } }; con = new Connection("192.168.102.80", 61613); bt1 = (Button) findViewById(R.id.button1); bt1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mReadThread = new ReadThread(); mReadThread.start(); } }); } private class ReadThread extends Thread { @Override public void run() { super.run(); try { con.connect(); con.send("Test pengiriman menggunakan stomp", "/queue/akhal"); threadHandler.sendEmptyMessage(1); } catch (StompJException e) { threadHandler.sendEmptyMessage(0); } } } }
Jangan lupa, atur permission pada file manifest, tambahkan kode berikut:
<uses-permission android:name="android.permission.INTERNET"/>
Sehingga menjadi:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.akhal.stomp" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="org.akhal.stomp.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Setelah semuanya sudah selesai, kemudian running program. Hasilnya tampak pada gambar dibawah ini.
Cek pada broker ActiveMQ, ketikkan url: http://localhost:8161/admin/queues.jsp
Untuk sourcode lengkapnya dapat di download disini
Recent Comments