Berkenalan dengan Socket.io
HomeHTMLWeb Server

Berkenalan dengan Socket.io

  Catatan : bahwa tulisan ini bukan tutorial membuat aplikasi menggunakan socket.io, namun hanya ringkasan penjelasan tentang fungsi socket....

yuk cari tau, Cara Memasang atau Embed Dokumen Google Docs di Web
Manajemen Routing Mudah di Express.js
Cara Membuat Server Radio Online (gratiss) dengan listen2myradio

 

Pendahuluan

Ada pepatah mengatakan tidak kenal tidak sayang, maka sebelum mengetahui lebih lanjut Socket.io, terlebih dahulu mengenal WebSocket. Di artikel ini, hanya fokus kepada pengenalan tentang Socket.io. Dan sebelum itu kita terlebih dahulu mengerti tentang WebSocket. Untuk lebih memudahkan untuk memahami

Apa itu WebSocket ?

WebSocket (WS) adalah sebuah protokol komunikasi komputer, dikenalkan pada awal sebagai TPC-based socket API di tahun 2008. Protokol ini memungkinkan untuk berkomunikasi secara 2 arah diatas 1 koneksi TCP. WebSocket membolehan interaksi antara client dengan server secara real-time. Dengan protokol ini dapat mengirim request secara terus menerus tanpa harus membuka koneksi untuk 1 koneksi seperti protokol HTTP.

Berikut adalah perbandingan connection lifecycle antara HTTP dengan WebSocket.

Sumber : https://www.xoriant.com/blog/mobility/websocket-web-stateful-now.html

Sebagai contoh sederhananya jika dibandingkan dengan protokol HTTP

  • HTTP : Client hanya bisa mengirim request, dan server mengirim balik response ke client.
  • WebSocket : Ketika koneksi antara client dan server terhubung, maka kedua pihak dapat saling mengirim data tanpa membuka koneksi baru, sampai koneksi tersebut putus.

Berikut beberapa kelebihan WebSocket dibandingkan menggunakan HTTP

  1. Koneksi 2 arah secara asynchronous, baik client maupun server dapat mengirim pesan ke masing — masing tujuan secara langsung tanpa pihak yang menerima data harus request terlebih dahulu
  2. Latency time yang sangat rendah
  3. Stream data secara real-time

Berikut aplikasi yang disarankan dibangun menggunakan koneksi WebSocket

  1. Game online multiplayer
  2. Aplikasi chatting / sosial media
  3. Aplikasi kolaborasi realtime
  4. Realtime notification
  5. Aplikasi berbasis lokasi realtime seperti Gojek, Grab dan sejenisnya
  6. Internet of Things (IoT)
  7. Dan aplikasi yang membutuhkan koneksi real-time tanpa melakukan pooling request (looping request dengan jeda waktu tertentu secara terus menerus)

WebSocket di Node.js

Node.js (Javascript) secara default dapat menghandle WebSocket lebih mudah dibandingkan dengan bahasa pemrograman lainnya, namun ada paket yang memudahkan untuk menggunakan WebSocket yaitu Socket.io.

Apa itu Socket.io?

Socket.io adalah real-time engine opensource yang dibangun di atas Node.js. Dengan Socket.io kita dapat berkomunikasi secara real-time, dua arah dan komunikasi berbasis event.

Dengan komunikasi berbasis event, kita tidak perlu request untuk mendapatkan data terbaru, yang perlu kita lakukan hanyalah listen / subcribe ke suatu topik. Jadi selama WebSocket tetap aktif dan listen ke suatu topik, jika terdapat data baru di topik tersebut, kita akan mendapatkan datanya secara otomatis.

Penjelasan Singkat Istilah Dasar di Socket.io

Socket.io dijadikan 2 bagian, yaitu

  1. Server: Backend web
  2. Client: Frontend web, Mobile, dll

Baik server maupun client memiliki fungsi utama dan API yang kurang lebih sama, yaitu :

  1. Event emitter, analogikan saja seperti orang berbicara tentang suatu hal/mengirim data dengan topik tertentu.
  2. Event listener, sebagai pendengar atau penerima pesan dari suatu topik, sehingga antara client dengan server dapat menerima pesan dari kedua pihak.
  3. Broadcast, merupakan fitur untuk mengirim data/pesan seperti event emitter, namun broadcast mengirim ke semua alamat socket yang aktif kecuali pengirimnya sendiri.

Ada fitur — fitur lain dari Socket.io yaitu namespaces dan room yang perlu kita tahu

  1. Namespaces, merupakan fitur untuk memisahkan ruang di dalam 1 koneksi websocket dengan menggunakan path endpoint yang berbeda, sebagai contoh example.com/ruang_tengah. Dengan fitur ini, kita dapat memiliki berbagai ruang hanya dengan 1 koneksi saja. Namescape default pada koneksi socket.io adalah â€˜/’ atau base url dari koneksi Socket.io (misal example.com). Perumpaan dari namespaces adalah seperti kita membangun gedung lebih dari 1 tingkat, misal tingkat 1 untuk kantor dan tingkat 2 untuk gudang, dan yang pastinya karena 1 gedung, memiliki alamat yang sama. Dari pada membangun gedung tersediri, dimana tentunya menghabiskan resource lebih banyak, lebih baik membangun gedung tersebut secara tingkat.
  2. Rooms, merupakan fitur untuk membuat sebuah ruang di suatu namespaces dimana user dapat join dan leave room tersebut. Fitur ini berguna sekali untuk membangun aplikasi semisal seperti group chat, yang membutuhkan koleksi dari berbagai socket yang terhubung disuatu room. Perumpamaan room seperti seorang user yang ikut group-chat, dimana user dapat join dan leave. Jika user tersebut join maka akan mendapat notifikasi dari diskusi di group-chat tersebut.
Designed by Sneeit.Com
Nama

2fa,2,adsense,3,ai,32,Alat,1,Algorithms,3,Android,29,anti virus,1,Apache,4,api,4,apipedia,2,Aplikasi Android,10,apps,2,AppSheet,40,arang,1,Array,3,array formula,3,Artikel,8,bca,1,Belajar,1,Bengkak,1,Berita,1,Berita terkini,13,Biografi,1,Bisnis,139,Bitcoin,1,Blog,7,Blogger,34,Blogger Template,1,Blogging,2,Bootable,1,bot,1,build with ai,3,build with syahdandev,14,bun.js,1,catlang,1,chat gpt,1,Cheat,1,Chrome,2,cloudflare,1,Code,14,coding,11,collaboration tools,1,Competitive Coding,7,copilot,1,CPU,1,Crud,1,CSS3,2,cybersecurity,2,Data Structures,18,Database,1,decode,1,Deep Learning,3,Desain Blogger,47,Design,3,developer,5,Development,8,Domain Hosting,2,Download,4,dunia kerja,2,Elon Musk,4,enak,1,encode,1,excel,2,express,1,Facebook,2,fact or hoax,1,fastify,1,free,1,Free Course,13,Game,5,Gamers,2,gemini,1,generate with AI,2,generator,1,github,2,google,12,Google AdSense,20,Google Apps Script,25,google calendar,1,google docs,2,google drive,2,google forms,1,google mail,1,google maps,1,Google Script,3,google sheets,14,Google Webmaster Tools,1,Hardware,1,Home,1,hosting,4,Hostinger,1,HP,2,HTML,6,HTML5,2,HyperOs,1,ice cream,1,ide kreatif,2,image creator,2,Indonesia,1,Instagram,2,instant vdeo generator,1,integrator,1,Internet,8,iOS,1,IOT,2,iphone,1,IT,6,JavaScript,7,js,4,Kenali,1,Keren,1,Kesehatan,14,laragon,1,laravel,1,Leet Code,7,library,1,Linked List,4,Linux,8,Machine Learning,4,malware,1,map,1,Mark Zuck,1,Marketing Tools,1,marketplace,1,Mata,1,Math,8,mbti,2,McDonald's,1,meme,1,meta,1,mfa,1,Microsoft Word,1,Minimalis,1,miscellaneous questions,1,mixue,1,Mobile Legends,4,Motherboard,1,motivasi,1,murah,1,mysql,5,Neovim,1,Networking,1,next js,1,ngingx,1,NIK,1,NLP,1,no code,5,node js,11,nodejs,1,NPWP,1,obfuscated,1,Office,1,open ai,3,Oppo,1,Parallel Space,1,pc,2,PDF Print,1,pgsql,2,Phoenix OS,1,PHP,16,phpmyadmin,2,portofolio,1,postman,3,Power Point,1,Presentation,1,price list,1,Program Aplikasi,6,programmer,3,programming,1,psikolog,4,python,5,query,1,Quesions or Answers (Quora),2,Questions or Answers (Quora),1,RAR,2,Recursion,3,regex,2,Regulasi,1,Review,147,Rufus,1,Rumus,55,Sakit,1,Samsung,1,Security,1,SEO,21,SHAREit,1,shop,1,simple apps,2,Smart City,1,smartfren,1,Smartphone,1,sms,1,Social Media,1,socket.io,2,Software,2,spesifikasi,1,SQL,1,SQL Server,1,Steemit,7,string,3,team IT,1,Tebak Gambar,2,Technology,4,Teknologi,8,Teknologi Informasi,3,Telegram,3,Template Blog SEO,10,Template Blogger,1,Templates,1,terminal,1,tiktok,1,Tips,22,Tips & Trik,20,Tips Blogging,36,Tips SEO,23,toolkit,1,Tree,8,Trick,27,trik,3,Tulisan Lepas,1,tutorial,6,Tutorial CSS,3,Tutorial HTML,56,Tutorial JavaScript,3,Twitter,2,Ubuntu,5,udemy,7,UX,8,VirtualBox,1,VLC Media Player,1,VSCode,2,waconsole,24,wallpaper engine,1,web dev,2,Web Server,5,WhatsApp,14,WhatsApp Gateway,8,Widget,2,Windows,25,wordpress,4,XAMPP,7,Xiaomi,5,Yii2,1,YouTube,3,
ltr
item
Syahdan Dev Blog: Berkenalan dengan Socket.io
Berkenalan dengan Socket.io
https://miro.medium.com/max/875/1*I7k46uWw2UDMrE40Cbzm0g.jpeg
Syahdan Dev Blog
https://syahdandev.blogspot.com/2022/08/berkenalan-dengan-socketio.html
https://syahdandev.blogspot.com/
https://syahdandev.blogspot.com/
https://syahdandev.blogspot.com/2022/08/berkenalan-dengan-socketio.html
true
6341435550051226882
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago 1 minutes ago 1 hour ago 1 hours ago Yesterday 1 days ago 1 weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content