Popularitas HTML5 sudah mendunia, dan sudah banyak digunakan di banyak devices. Maka kemarin FemaleDev Surabaya mengangkat tema HTML5 WebSocket di workshop mereka. Kebetulan saya diundang sebagai pemateri. Maka kali ini saya ingin sedikit share pula tentang apa itu HTML5 WebSocket kepada pembaca Mebiso :-)
WebSocket merupakan terobosan dari W3 untuk memungkinkan browser dan server saling berkomunikasi (bidirectional). Tidak hanya itu, WebSocket juga menghemat bandwidth yang cukup besar. Pasalnya ketika mengirim atau menerima response, websocket memiliki overhead yang cukup minim.
Sejarah HTML5 Websocket
Asal muasal dari diwujudkannya websocket adalah permintaan beberapa client yang mengharuskan developer bisa membuat aplikasi berbasis web secara real time / real-time apps, aplikasi dimana ketika ada perubahan data, maka saat itu juga website juga ada perubahan atau paling tidak ada notifikasi. Dulu, developer bisa membuatnya, tapi tidak se-real time yang dimaksudkan. Contohnya saja metode Polling. Metode ini adalah metode untuk request data dari server secara terus menerus. Kalau hanya satu client yang melakukan request berulang seperti itu, mungkin tidak masalah, tapi bagaimana jika ada beberapa client yang mengakses satu server dan berulangkali melakukan metode Polling. Maka server akan jadi sibuk dan rentan terkena serangan DDOS.
Akhirnya ada metode baru lagi yang dinamakan Long Polling. Metode ini adalah metode polling dengan interval waktu yang berkala. Jadi request tidak sesering metode Polling. Manfaatnya adalah server jauh lebih stabil dibandingkan dengan metode Polling. Namun permasalahannya sederhana, Long Polling tidak menjawab real time, karena ada interval waktu yang digunakan.
Kemudian, setelah sekian lama diinginkan, akhirnya dikembangkanlah WebSocket. Ide Websocket muncul pada tahun 2009 sebagai proposal, kemudian dikembangkan selama 3 tahun sehingga WebSocket sekarang jauh lebih stabil dan sudah banyak di-support oleh bermacam-macam browser.
Serba-serbi Websocket
Beberapa kelebihan dari websocket:
- Native Javascript, tidak perlu tambahan library
- Simple
- Low Latency (rentang waktu dalam kirim-terima data)
- Komunikasi dua arah
- Ringan
Beberapa faktor yang menyebabkan banyak developer masih meragukan keunggulan websocket:
- Hanya modern Browser yang support (bye, IE6)
- Membutuhkan port sendiri
Bahasa pemrograman dari server-side yang sudah support dengan WebSocket:
- PHP
- Ruby on Rails
- Java
- NodeJS
- Python
Jika teman-teman ingin mengikuti tutorial dalam menggunakan websocket, anda masuk di Blog pribadi Mochamad Gufron. Untuk demonstrasi, anda bisa melihatnya disini. Semoga bermanfaat dan selalu stay tune di Mebiso untuk mengikuti berita event-event dan liputan terbaru seputar IT.
Oh iya maaf. Karena konteksnya kali ini adalah liputan, maka berikut saya sertakan pula sejumlah jepretan yang dapat menjelaskan keseruan FemaleDev kemarin. :-)
Penjelasan browser capability dengan websocket
FemaleDev Surabaya tampak antusias mengikuti workshop Websocket
FemaleDev Surabaya tampak antusias mengikuti workshop Websocket
FemaleDev Surabaya keren!