Mengenal SignalR dan Cara Penggunaannya

Mengenal SignalR dan Cara Penggunaannya

Selamat pagi semuanya. Bulan-bulan ini admin jarang sekali online dan menulis artikel di blog ini dikarenakan adanya kesibukan yang tidak bisa ditinggalkan. Dan puji syukur kepada Tuhan pada kesempatan kali ini admin ingin sedikit berbagi tutorial mengenai SignalR.

Apa itu SignalR? SignalR merupakan teknologi web realtime yang digunakan oleh ASP.NET yang memungkinkan server mengirimkan dan menerima data secara asynchronous ke sisi client maupun sebaliknya.

SignalR merupakan library ASP.NET yang dapat menambahkan fungsi web secara realtime pada aplikasi yang dikembangkan. Realtime yang dimaksudkan adalah server dapat mengirimkan data secara langsung kepada client-client yang sedang terhubung maupun sebaliknya pada saat itu juga.

Komunikasi yang dilakukan SignalR yaitu dengan mengambil keuntungan dari banyaknya transportasi data yang dilakukan oleh client, lalu akan dipilih transportasi data yang terbaik yang tersedia pada sisi client maupun server.

SignalR umumnya menggunakan websocket untuk komunikasi data dengan client. Websocket sendiri merupakan salah satu API pada HTML5 yang dapat melakukan komunikasi dua arah antara sisi server dan sisi client. Jika websocket tidak tersedia ataupun tidak memungkinkan, maka akan dipilih jalur komunikasi lain yang dapat digunakan untuk komunikasi data. Kurang lebih seperti itulah gambaran cara kerja SignalR.

SignalR Diagram

Contoh penerapan SignalR salah satunya terdapat pada aplikasi Chat ataupun Notifikasi. Pada tutorial ini admin akan menjelaskan sedikit cara kerja dan penggunaan library SignalR pada aplikasi ASP.NET.

Pada gambar ilustrasi diatas, kita ketahui bahwa SignalR memiliki Hub, Hub sendiri dalam jaringan (network) dikenal berfungsi untuk menghubungkan komputer yang satu dengan komputer lainnya asalkan masih dalam lingkup jaringan yang sama.

[ads id="ads1"] Hub berfungsi sebagai penghubung client yang terkoneksi ke server. Dengan hub inilah nantinya SignalR akan melakukan komunikasi data secara realtime dengan client.

Didalam hub terdapat fungsi atau method yang nantinya akan digunakan untuk komunikasi data. Salah satu contoh fungsi yang digunakan untuk mengirim data ke client misalnya Clients.All yang berfungsi untuk mengirim data kepada semua client. Fungsi lainnya seperti mengirim data kepada User tertentu Clients.User. Mengirim data kepada Group tertentu Clients.Group dan masih banyak fungsi-fungsi client lainnya.

Setelah server menjalankan fungsi client diatas, maka giliran client yang menerima, lalu menjalankan perintah yang telah dikirimkan oleh server seperti dalam contoh diatas. Agar lebih jelasnya, perhatikan ilustrasi gambar berikut :

Ilustrasi cara kerja SignalR

Dari ilustrasi gambar diatas dijelaskan: server mengirimkan data kepada semua client berupa pesan "Hallo Client". Lalu client akan menjalankan fungsi javascript getMessage() untuk menerima pesan dari server. Artinya, server memanggil fungsi javascript getMessage() secara langsung pada sisi client untuk menerima data dan menjalankannya juga secara langsung.

Atau menggunakan ilustrasi selanjutnya yaitu client yang mengirimkan data ke server berupa pesan teks "Selamat pagi admin" kepada User "admin". Berikut ilustrasinya :

SignalR client to server

Dari ilustrasi gambar diatas dijelaskan: client menjalankan fungsi server sendMessageTo() untuk mengirimkan data kepada client dengan username "admin" berupa pesan teks "Selamat pagi admin". Lalu client yang memiliki username "admin" akan menjalankan fungsi javascript getMessage() untuk menerima pesan dari server dan menampilkannya dengan fungsi javascript alert().

Dari ilustasi diatas, SignalR bekerja dengan cara memanggil masing-masing fungsi pada sisi client maupun server secara langsung dan menjalankan fungsi-fungsi lainnya sesuai kebutuhan secara realtime. Artinya baik dari sisi server maupun client memiliki komunikasi dua arah dan wajib memiliki fungsi-fungsi yang dapat dipanggil langsung melalui skema Hub.

[ads id="ads2"] Cukup mudah bukan?

Sebagai catatan saja. Untuk menjalankan fungsi Clients.User pada sisi server (berguna untuk hanya menjalankan fungsi pada user tertentu) wajib menggunakan autentifikasi login dengan System.Security.Principal.IIdentity.Name.

Tutorial terkait membuat custom login dengan principal dapat kalian baca pada tutorial Membuat Custom Login Owin pada ASP.NET Web Form atau Membuat Custom Login Owin di ASP.NET MVC.

Untuk kalian yang memiliki sebuah pertanyaan terkait tutorial diatas jangan sungkan untuk dapat langsung bertanya melalui email kami atau meninggalkan komentar dibawah. Terima kasih.


0/Post a Comment/Comments

Lebih baru Lebih lama