Memahami Perbedaan Antara WEB SOCKET & REST
Postingan ini saya share setelah baru saja saya mendapatkannya penjelasan tentang web service. Dengan tujuan utama sebagai pengingat ketika saya lupa akan hal ini dan syukur2 dapat bermanfaat bagi kawan2 semua. Dan saya pun sangat berterima kasih jika para pembaca mengkoreksi atas penulisan saya ini. Kuyyy ahhh kita mulai...........
Web Service adalah aplikasi sekumpulan data (database), perangkat lunak (software) atau bagian dari perangkat lunak yang dapat diakses secara remote oleh berbagai piranti dengan sebuah perantara tertentu. Secara umum, web service dapat diidentifikasikan dengan menggunakan URL seperti hanya web pada umumnya.
Web service dapat dikatakan sebagai jembatan penghubung antara frontEnd dan backEnd dengan tujuan agar komunikasi antara keduanya berjalan dengan terstruktur dan lancar. Sedangkan Web Socket dan REST adalah bagian/metode dari web service itu sendiri.
A. Pengertian Web Socket & REST
WebSocket adalah standar baru untuk komunikasi realtime pada Web dan aplikasi mobile. WebSocket dirancang untuk diterapkan di browser web dan server web, tetapi dapat digunakan oleh aplikasi client atau server. WebSocket adalah protokol yang menyediakan saluran komunikasi full-duplex melalui koneksi TCP tunggal. WebSocket merupakan bagian dari HTML5. WebSocket menghadirkan pengurangan besar dalam lalu-lintas jaringan yang tidak penting dan latency dibandingkan dengan solusi polling dan long-polling yang telah digunakan untuk mensimulasikan koneksi dua arah dengan cara menjaga dua koneksi tetap terhubung.
REST (REpresentational State Transfer) adalah suatu arsitektur metode komunikasi yang sering diterapkan dalam pengembangan layanan berbasis web. Arsitektur REST, yang umumnya dijalankan via HTTP (Hypertext Transfer Protocol), melibatkan proses pembacaan laman web tertentu yang memuat sebuah file XML atau JSON.
B. Perbedaan Web Socket & REST
Gambar 1.0 Alur Kerja Web Service
==> Web Socket : Mengirimkan data sesuai dengan timestime(waktu tertentu untuk menampilkan data) yang sudah ditentukan. Adapuun aplikasi/tools yang digunakan disini adalah "Simple Web Socket Client" yang mana sudah terdapat di google chrome namun tinggan add to chome saja. Alur dari web socket adalah frontEnd request untuk membuka port/pintu untuk masuk ke backend dengan format request "ws://ip_host:port/path_yang_dituju/, kemudian respone dari backend jika port/pintu di backend sudah berstatus OPENED maka akan frontEnd melakukan request kembali dengan format yang sudah disepakati contohnya {"message":"init","keywords":"*"} dengan init sebagai permission dan " * " sebagai keyword yang artinya semua data. Jika sudah maka akan muncul di Message Log nya seperti dibawah ini :
{"message":"init","keywords":"*"}
{"time":1511370000000,"status":"time"}
{"keywords":"*","status":"keywords"}
{"status":"ready"}
Artinya data siap untuk ditampilkan. Langkah selanjutnya frontEnd melakukan request kembali dengan format {"message":"get","keywords":"*","time":1511370000000} dengan mengganti permission menjadi "get" dan menambahkan time sesuai dengan yag didapatkan sebelumnya. Jika terjadi output seperti dibawh ini :
{"message":"get","keywords":"*","time":1511370000000}
{"status":"end"}
{"time":0,"status":"time"}
{"status":"ready"}
Artinya data pada time 1511370000000 tidak ada data/data kosong. Kemudian frontEnd lakukan request kembali dengan mengganti "time" menjadi "time":0 dan seterusnya sampai data pada timestime tersebut dapat ditampilkan. Seperti contoh dibawah ini :
{"message":"get","keywords":"*","time":0}
{"an":{"4ff91979800efa2114e0efd0a110a617":{"info_class":"bias","name":"Hebaaaaaaaaaaaaaaaaat....empat jempol deh.....!!!!","x":-970.3334358516871,"y":353.1071113773296,"id":"4ff91979800efa2114e0efd0a110a617","type":"facebook-post"}}}
{"an":{"86ad221ce028d1d438107edbbfc026eb":{"name":"bias","x":-969.3403611735419,"y":354.5683250648748,"id":"86ad221ce028d1d438107edbbfc026eb","type":"infoclass"}}}
{"ae":{"4ff91979800efa2114e0efd0a110a617#86ad221ce028d1d438107edbbfc026eb":{"source":"4ff91979800efa2114e0efd0a110a617","type":"","target":"86ad221ce028d1d438107edbbfc026eb"}}}
{"an":{"4ff91979800efa2114e0efd0a110a617":{"info_class":"bias","name":"Hebaaaaaaaaaaaaaaaaat....empat jempol deh.....!!!!","x":-970.3334358516871,"y":353.1071113773296,"id":"4ff91979800efa2114e0efd0a110a617","type":"facebook-post"}}}
{"an":{"f6a644f784f909056dc2776f4e83dede":{"name":"facebook","x":-961.6329326631904,"y":357.73585442695,"id":"f6a644f784f909056dc2776f4e83dede","type":"source"}}}
{"ae":{"4ff91979800efa2114e0efd0a110a617#f6a644f784f909056dc2776f4e83dede":{"source":"4ff91979800efa2114e0efd0a110a617","type":"","target":"f6a644f784f909056dc2776f4e83dede"}}}
{"an":{"4ff91979800efa2114e0efd0a110a617":{"info_class":"bias","name":"Hebaaaaaaaaaaaaaaaaat....empat jempol deh.....!!!!","x":-970.3334358516871,"y":353.1071113773296,"id":"4ff91979800efa2114e0efd0a110a617","type":"facebook-post"}}}
{"an":{"8afb6319a363f006783da847de97700a":{"name":"@masaroh.handita","x":-962.1190585629892,"y":362.2819063457187,"id":"8afb6319a363f006783da847de97700a","type":"user"}}}
{"ae":{"4ff91979800efa2114e0efd0a110a617#8afb6319a363f006783da847de97700a":{"source":"4ff91979800efa2114e0efd0a110a617","type":"","target":"8afb6319a363f006783da847de97700a"}}}
{"an":{"4ff91979800efa2114e0efd0a110a617":{"info_class":"bias","name":"Hebaaaaaaaaaaaaaaaaat....empat jempol deh.....!!!!","x":-970.3334358516871,"y":353.1071113773296,"id":"4ff91979800efa2114e0efd0a110a617","type":"facebook-post"}}}
{"an":{"38975165e60b75a728c5d225ab8b3f07":{"info_class":"bias","name":"http://bola.kompas.com/read/xml/2010/01/25/04314938/inter.superior.milan.ditelan","x":-961.7914704168616,"y":355.33604221743707,"id":"38975165e60b75a728c5d225ab8b3f07","type":"url"}}}
{"ae":{"4ff91979800efa2114e0efd0a110a617#38975165e60b75a728c5d225ab8b3f07":{"source":"4ff91979800efa2114e0efd0a110a617","type":"","target":"38975165e60b75a728c5d225ab8b3f07"}}}
{"an":{"38975165e60b75a728c5d225ab8b3f07":{"info_class":"bias","name":"http://bola.kompas.com/read/xml/2010/01/25/04314938/inter.superior.milan.ditelan","x":-966.369874786754,"y":358.49707226206084,"id":"38975165e60b75a728c5d225ab8b3f07","type":"url"}}}
{"an":{"879e9347939accaed81e78d85e622163":{"name":"bola.kompas.com","x":-963.700764799076,"y":361.55473820260613,"id":"879e9347939accaed81e78d85e622163","type":"media"}}}
{"ae":{"38975165e60b75a728c5d225ab8b3f07#879e9347939accaed81e78d85e622163":{"source":"38975165e60b75a728c5d225ab8b3f07","type":"","target":"879e9347939accaed81e78d85e622163"}}}
{"an":{"72e62ab89ae64dfba4fe560055fbdb21":{"info_class":"propaganda","name":"buat yg belum pakai tag {DENSUS} ayo sekarang buruan pakai... banyak yg bisa didapat mulai loot item dari para senior,berbagi strategi(trik), perang melawan clan laen yg mengganggu {DENSUS} sampai merasakan enaknya menjadi prioritas para rekan2.... tp yg paling ok (menurut aq sih), aroma kekeluargaan didalam ataupun diluar markas... so, tunggu apa lagi?? by erich ucl","x":-136.89259549842836,"y":220.07463738904403,"id":"72e62ab89ae64dfba4fe560055fbdb21","type":"facebook-post-page"}}}
{"an":{"7e03f734311202728d3c0daf33c3ab77":{"name":"propaganda","x":-129.9809375906183,"y":227.15565459875523,"id":"7e03f734311202728d3c0daf33c3ab77","type":"infoclass"}}}
{"ae":{"72e62ab89ae64dfba4fe560055fbdb21#7e03f734311202728d3c0daf33c3ab77":{"source":"72e62ab89ae64dfba4fe560055fbdb21","type":"","target":"7e03f734311202728d3c0daf33c3ab77"}}}
{"an":{"72e62ab89ae64dfba4fe560055fbdb21":{"info_class":"propaganda","name":"buat yg belum pakai tag {DENSUS} ayo sekarang buruan pakai... banyak yg bisa didapat mulai loot item dari para senior,berbagi strategi(trik), perang melawan clan laen yg mengganggu {DENSUS} sampai merasakan enaknya menjadi prioritas para rekan2.... tp yg paling ok (menurut aq sih), aroma kekeluargaan didalam ataupun diluar markas... so, tunggu apa lagi?? by erich ucl","x":-136.89259549842836,"y":220.07463738904403,"id":"72e62ab89ae64dfba4fe560055fbdb21","type":"facebook-post-page"}}}
{"an":{"f6a644f784f909056dc2776f4e83dede":{"name":"facebook","x":-129.73429241809663,"y":224.05676427510068,"id":"f6a644f784f909056dc2776f4e83dede","type":"source"}}}
{"ae":{"72e62ab89ae64dfba4fe560055fbdb21#f6a644f784f909056dc2776f4e83dede":{"source":"72e62ab89ae64dfba4fe560055fbdb21","type":"","target":"f6a644f784f909056dc2776f4e83dede"}}}
==>REST : Mengirimkan data sesuai dengan jumlah parameter yang dimaksud dari request frontEnd. Contoh format requestnya localhost:3101/rest-graph/get?sort=1&skip=1&limit=100, artinya data akan dikirimkan satu kali proses sebanyak limitnya yaitu 100 data.
Kesimpulannya adalah jika websocket dia akan mengirimkan data berulang kali sesuai dengan timestime yang di request namun jika REST dia akan mengirimkan data satu kali proses dengan berdasarkan parameter limit yang di requestnya.
Sekian dulu postingan saya kali ini semoga apat bermanfaat khusus utuk diri saya pribadi dan umumnya untuk para pembaca,,,,
Thank's for All
Sekian dulu postingan saya kali ini semoga apat bermanfaat khusus utuk diri saya pribadi dan umumnya untuk para pembaca,,,,
Thank's for All
Jakarta, 23/11/2017
Penulis
makasihhh
BalasHapussukses dan bahagia selalu, semoga selalu diberikan kekuatan lebih dan lebih