Friday, April 24, 2009

TUTORIAL MENGIRIM PESAN MENGGUNAKAN XMPPHP

Pengantar

XMPPHP adalah salah satu PHP library untuk membuat web base jabber client. Di situs pengembang XMPPHP sendiri dikatakan bahawa XMPPHP merupakan penerus dari Class.Jabber.php.
Di sini saya akan sedikit menjelaskan penggunaan XMPPHP untuk menjalankan fungsi-fungsi dasar jabber, yakni mengirim pesan private dan mengirim pesan kepada groupchat.
Perlu di ketahui bahwa proses utama di dalam XMPPHP di handle oleh sebuah file XMLStream.php. Dimana di dalamnya terdapat fungsi untuk melakukan proses XML Streaming Selain XMLStream.php juga terdapat sebuah file pendukung lainnya yakni XMPP.php. Pada file inilah terdapat xml handler yang akan dikirim melalui proses XML Socket Stream.
Sebelum kita memulai membuat script, ada beberapa aplikasi dan setting yang yang perlu kita lakukan
1. File utama XMPPHP, dapat di download di http://code.google.com/p/xmpphp
2. PHP server untuk menjalankan script php, di sini saya menggunakan XAMPP.
3. Ekstrak file XMPPHP kedalam forlder htdocs pada xampp atau folder www pada beberapa aplikasi php server lainnya.
4. Pastikan anda mengaktifkan ekstensi php_openssl.dll pada XAMPP, karena kita akan melakukan koneksi menggunakan SSL pada port 5222. Anda dapat melihat konfigurasi php anda pada phpInfo, dan untuk mengaktifkannya buka file php.ini pada folder xampp/apache/bin/php.ini. Hilangkan tanda “;” di depan string extension=php_openssl.dll.
5. Koneksi ke internet.
6. Terakhir, proses ini hanya dapat dilakukan oleh pengguna PC


Mengirim pesan private (Penggunaan yang baik)

Pada bagian ini saya akan mencoba menjelaskan cara mengirim pesan private kepada jabber client. Baiklah pertama jalankan server xampp anda, copy dan simpan script di bawah ini sebagai private.php dengan menggunakan text editor kesayangan anda:

Code:

// activate full error reporting
//error_reporting(E_ALL & E_STRICT);


include 'xmpphp/Log.php';
include 'XMPPHP/XMPP.php';

#Use XMPPHP_Log::LEVEL_VERBOSE to get more logging for error reports
#If this doesn't work, are you running 64-bit PHP with < 5.2.6?
$conn = new XMPPHP_XMPP('openfire.nimbuzz.com', 5222, ‘username’, ‘password’, 'xmpphp', 'nimbuzz.com', $printlog=false, $loglevel=XMPPHP_Log::LEVEL_INFO);

try {
$conn->connect();
$conn->processUntil('session_start');
$conn->presence();
$conn->message(‘eliash@nimbuzz.com','hallo bang eliash’);
$conn->disconnect();
} catch(XMPPHP_Exception $e)
die($e->getMessage());
}
?>


Penjelasan script di atas adalah sebagai berikut :

Code:
include 'xmpphp/Log.php';
include 'XMPPHP/XMPP.php';


pada script diatas kita akan melakukan inclusi file Log.php dan XMPP.php, dimana terdapat fungsi2 perintah jabber.

Code:
$conn = new XMPPHP_XMPP('openfire.nimbuzz.com', 5222, 'username', 'password', 'xmpphp', 'nimbuzz.com', $printlog=false, $loglevel=XMPPHP_Log::LEVEL_INFO);

Potongan Script di atas berisi variable-variabel host, port, username, password dan server jabber yang akan kita gunakan. Dimana fungsi tersebut terdapat pada XMPP.php

Code:
public function __construct($host, $port, $user, $password, $resource, $server = null, $printlog = false, $loglevel = null) { parent::__construct($host, $port, $printlog, $loglevel);

potongan script diatas terdapat pada XMPP.php

Code:
$conn->connect();


Fungsi potongan script diatas adalah untuk melakukan koneksi ke jabber server.

Code:
$conn->processUntil('session_start');
$conn->presence();

Script diatas berisi proses akan dimulai setelah sesi telah dimulai, dan mengirim presence ke pada jabber server.

Code:
conn->message(‘eliash@nimbuzz.com','hallo bang eliash’);}
$conn->disconnect();

Potonga script diatas berisi perintah pengirim pesan, dimana terdiri dari variable user jid dan pesan. Fungsi ini terletak di XMPP.php

Code:
public function message($to, $body, $type = 'chat', $subject = null, $payload = null)

pada fungsi diatas terdapat variable
$to yang berisi user JID tujuan,
$body berisi Isi pesan,
$type merupakan tipe pesan, dimana chat untuk private dan groupchat untuk room.
$subject merupakan subject pesan.

Pada baris $conn->disconnect(); kita memutuskan koneksi ke jabber server.

Nah sekarang jalankan script diatas pada browser anda, tentunya server xampp pada keadaan aktif. Hasilnya satu pesan private akan masuk.


Mengirim pesan private (Penggunaan yang kurang baik)

Okeh, ini neh yang kata orang2 plud web (gitu katanya) :D:D:D:D. Kalo menurut pada pakar flooder, flood itu adalah text yang di kirim berulang2. Jadi hubungannya dengan script kita tercinta ini adalah dengan menambahkan proses perulangan. Okeh, dip hp sendiri proses perulangan ada beberapa macam. Di sene kita akan menggunakan funsi perulangan “for”. Gene ne script dasarnya

Code:

For($i=0;$i<10;Si++)
{
Echo “$i”;
}

?>

Kalo di manusiakan dengan bahasa Indonesia, script di atas berbunyi kayak gene neh, variable $i bernilai 0, selama variable $i kurang dari 10, maka tambah variable $i. Jadi kalo tuh si $i masih kurang dari 10 tambah teruss sampe si $i bernilai 10.

Nah tinggal kita sisipkan aje tuh looping ke dalam script kita tercinta, jadinya begini ni :D:D:D::D :

Code:
For ($i=0;$i<100000;$i++)
{
$conn->message(‘eliash@nimbuzz.com','hallo bang eliash’);
}


Sorry oom eliash, kalo nick na di pake buat cuntuh. Kan Cuma cuntuh. :D:D:D:D:D. Nah kalo dah gitu twuh, tinggal kalian eksekusi aja tuh script melalui browser kesayangan anda pula. Tunggu hasilnya. Wala……… 100000 pesan masuk ke korban :D. Peringatan, sebelum anda menjalankan script diatas, ganti dolo targetnya dengan nick anada sendiri atau sukarelawan yang iklas nickna di jadikan eksperimen :D:D:D:D:D.


Mengirim Pesan Groupchat (Penggunaan yang baik)

Pada bagian ini saya akan mecoba kembali menjelaskan penggunaan XMPPHP untuk mengirim pesan ke Groupchat atau Room. Pada dasarnya script yang digunakan sama dengan yang digunakan untuk mengirimkan pesan private. Untuk mengirim pesan ke Room, yang pertama di perlukan adalah mengirimkan presence “available” ke suatu room, dimana fungsi tersebut juga terdapat pada script xml yang digunakan untuk join ke suatu room. Dan memberikan presence “unavailable” untuk meninggalkan room. Berikut script php kita gunakan. Simpan script di bawah dengan nama room.php

Code:

// activate full error reporting
//error_reporting(E_ALL & E_STRICT);
include 'XMPPHP/Log.php';
include 'XMPPHP/XMPP.php';

//$status = null, $show = 'available', $to = null, $type='available'
#Use XMPPHP_Log::LEVEL_VERBOSE to get more logging for error reports
#If this doesn't work, are you running 64-bit PHP with < 5.2.6?
$conn = new XMPPHP_XMPP('openfire.nimbuzz.com', '5222', 'username', 'password', 'xmpphp', 'nimbuzz.com', $printlog=false, $loglevel=XMPPHP_Log::LEVEL_INFO);

try {
$conn->connect();
$conn->processUntil('session_start');
$conn->presence(NULL, "bot", "makassar_room@conference.nimbuzz.com/username", "available");
$conn->message("makassar_room@conference.nimbuzz.com","ini adalah pesan saya","groupchat");
$conn->presence(NULL, "bot", "makassar_room@conference.nimbuzz.com/username", "unavailable");
$conn->disconnect();
} catch(XMPPHP_Exception $e) {
die($e->getMessage());
}

?>

Pada Script di atas terdapat penambahan beberapa variable pada funsi presence

Code:
$conn->presence(NULL, "bot", "makassar_room@conference.nimbuzz.com/username", "available");
$conn->message("makassar_room@conference.nimbuzz.com","ini adalah pesan saya","groupchat");
$conn->presence(NULL, "bot", "makassar_room@conference.nimbuzz.com/username", "unavailable");


Pada bagian presence pertama kita mengirimkan presence ke pada gruopchat untuk join ke room, dan pada presence ke dua untuk meninggalkan room. Script kamu siap di jalankan di browser, dan liat hasilnya di room target.


Mengirim Pesan Groupchat (Penggunaan yang kurang baik)

Wokeh2, neh balik lagi ma gw :o. Jadi gene neh yua. Jadi barang diatas juga bisa kita akal2in buat emplood di room. Nah kita balik lagi ke pada arti plod entu, kan plod entu text yang di kirim berulang2 katanya jagoan emplooder. Ne karena ada pembatasan jumlah posting dan jarak antara satu posting ke posting laennya, jadi kita pake model plood entered, posting, lep yang kayak trick xml entu. Nah tentu aja tinggal di tambahin proses looping na :D:D:D:D. Jadi dah Senjata mu siap buat Ber flood ria :D:D:D:D. okeh kayak gene neh jadinya yua :D


Code:
For ($i=0;$i<100000;$i++)
{
$conn->presence(NULL, "bot", "makassar_room@conference.nimbuzz.com/username", "available");
$conn->message("makassar_room@conference.nimbuzz.com","ini adalah pesan saya","groupchat");
$conn->presence(NULL, "bot", "makassar_room@conference.nimbuzz.com/username", "unavailable");
}

Nah tinggal jalanin aja ntuh script lewat browser kesayangan kamu :D, jadi dweh emplood room :D:D:D:D:D.. Wokeh segene aja dolo share dari otak rusak ku ini neh :D


Penutup

Sekian share dari saya, jika ada kesalahan mohon masukan dan bantuannya. Masih banyak fungsi yang bisa kita tambahkan pada XMPPHP, seperti invite user, add contact dan lainnya. Intinya adalah pada script xml yang akan kita kelola via php. Terima Kasih.

Ocehan Kusung

Weits ane ga mau kalah juga ngasi penutup :D:D:D:D, jadi semue perbuatan nyang lw lakuin lw tanggung sendiri, jangan bawa bawa name ane trus satu lagi semakin banyak jumlah looping yang lw lakukan semakin berat juga proses yang dijalankan dan semakin besar juga resource yang digunakan :D:D:D, jadi dikit2 aja kalo mau ngirim. Huhuy. Ni ada care buat ngeblok emplood dari tukang plood, di block ga mempan, di belokkan tekor juga, nah gene ne yang paling manjur, pilih menu klik exit nimbuzz, gampang kan :D:D:D:D. ane juga sekarang kagak demen lagi ngeflood, sekarang kerjaan ane nerima pesenan web flood :D:D:D. wokeh dah dolo yua. Kata oom gw c u tha tha bye bye :D


Salam anak_kost@nimbuzz.com

Terima kasih buat teman-teman yang dah bantuin ide2nya

wasis (sam_sisaw), albar(scratt), eko(jaranrock13), edi(hiro85), rara(panic_girl), abuy(hannover A.K.A enak.suka), julie(aura.kasih), nn(heritop), dewi(khen_dedesh19), nn(lembus), arif(nini.towo), nn(bee), wira(Wiro27) dan para pengguna flood ku :D


Sumber: http://code.google.com/p/xmpphp

No comments:

Post a Comment

Nimbuzz Ki©ke®™