DevOps Expert | apa dan bagaimana Google CLoud Platform (GCP) ?

google cloud platform gpc adalah
Google Cloud Platform atau disingkat GCP adalah layanan dari google tentang public cloud computing yang terdiri dari beragam layanan. diantara layanan nya adalah

  • Google Compute Engine
  • Google App Engine
  • Google Cloud Storage
  • Google Container Engine

Google Cloud Platform Service dapat diakses oleh software developer, DevOps, Sys admin dan profesional IT lainnya menggunakan piblic internet  atau melalui koneksi jaringan dedicated lain nya.
Lalu apa dan bagaimanakah GCP serta layanan-layanan nya?
ikuti event seminar gratis dari Cloud Ace berikut :

Topik Seminar :

– Pengenalan GCP
– Perbedaan antara GCP, AWS & Azure
– Demo GCP
– Sesi Q & ATanggal : 11 April 2019
Pukul : 10:00-12:00
Tempat : Horaios Malioboro Hotel
Jalan Gowongan Kidul No. 57, Gedongtengen, Yogyakarta, Yogyakarta Province, Indonesia, 55271
E-mail : id@cloud-ace.com

google cloud platform gpc adalah

klik disini untuk pendaftaran

[Compare] Berbedaan dan Perbandingan Flutter vs React Native

flutter vs react native

2017 Dunia Coding di hebohkan dengan rilisnya bahasa baru dari google. Bahasa untuk men-develop aplikasi mobile multi platform Android dan IOS. FLUTTER ikut meramaikan kancah persaingan antar bahasa pemrograman di platform mobile device. Dengan sekali coding hasilnya dapat berjalan di android dan IOS.
Tentu setiap framework mempunyai kelebihan dan kekurangan masing-masing. Pada ulasan kali ini kita bahas tentang Flutter dan React Native yang notabene sedang popular dan banyak dipakai.

1. Vendor Developer

Seperti yang kita tahu bersama bahwa 2 framework ini di develop oleh 2 raksasa yakni Flutter oleh Google dan React Native oleh Facebook. Sangat menjanjikan.

2. Initial Release

React Native rilis tahun 2015 otomatikeli dia lebih tua dan sewajarnya lebih banyak pengalaman nya. Sedangkan Flutter 2017, walaupun baru kemaren namun perkembangan nya bisa dibilang pesat.

3. Language

Javascript adalah bahasa yang dipakai React Native. Ini menjadi poin plus tersendiri karena javascript sudah dikenal sejak lama dan banyak yang menguasai sehingga tidak membutuhkan waktu lama dalam mempelajarinya. Sedangkan Flutter menggunakan Dart, bahasa baru yang mudah digunakan bagi developer yang terbiasa dengan OOP seperti C++ dan Java.

4. Learning Curve

React Native sepertinya mendapat poin plus untuk ini karena menggunakan javascript sebagai base nya.

5. Platform

Sama2 multi platform. draw

6. Simulator

Sama2 punya hot reload yang memungkinkan untuk live coding melihat hasil nya.

7. Reusable Code

Flutter membuat developer menjadi mudah karena dapat melakukan reuse existing code. Sedangkan pada React Native meskipun dapat reusable code namun lebih mudah di Flutter

8. Code Style

Flutter dikenal dengan simplicity nya. Sedangkan React Native dikenal dengan Ready to Use componen nya.

9. Development Time

Tergantung developer, Flutter dengan simplicity dan reuse code nya. React Native dengan ready to use library nya.

10. Stability

Karena Flutter lahirnya kalah cepet ya wajar kalo React Native lebih stabil.

11. Performance

Nah, Flutter ini direct component to device loo. Sedangkan React Native pake layer javascript.

12. Library

Sama sama Banyak

13. Time to Reach Market

Tergantung developer juga. Flutter cocok buat  prototyping. React Native cocok buat longterm karena lebih stabil dan mature

14. Popularity

Otomatis React Native lebih populer wong lahir duluan. Namun Flutter sudah hampir menyusul loo.

15. Community

Kalo sekarang banyakan React Native

16. Documentation

Flutter Rapi dan update jadi bagi developer pemula mudah belajar. Sedangkan react kurang terorganisir tapi up to date.

17. Used By

Sama sama dipakai perusahaan-perusahaan besar.

Berikut ringkasan komparasi dari 2 jawara mobile apps builder framework.

Flutter83Faktor87React Native
Google
5
Developers
5
Facebook
2017
4
Initial Release
6
2015
Dart
5
Language
5
JavaScript
Need learning Dart
4
Learning Curve
6
Famous Javascript
Android and iOS
5
Platform
5
Android and iOS
Stateful Hot Reload
5
Simulator
5
Hot Reload
Yes
6
Reusable Code
4
Reuse but restrict few component
Simplicity
6
Code Style
4
More Strict
More time, but reusable code
4
Dev Time
6
Ready to use component
Trying to Stable
4
Stability
6
Mature, older
Direct with native component
6
Performance
4
Use Javascript Layer
Many
5
Library
5
Many
Fast, Cocok untuk protitype
5
Time to Reach Market
5
Longterm lebih matur
60k github
4
Popularity
6
76k github
fast growt
4
Community
6
Large already
Rapi dan up to date
6
Documentation
4
Kurang rapi tapi up to date
Alibaba, Reflectly, Tencent, Hamilton Musical, Google Greentea, JD Finance, Abbey Road Studios, etc
5
Used By
5
Facebook, Oculus Go VR Headset, Instagram, Pinterest, Uber, Tesla, Walmart, Wix.com, Baidu, Artsy, etc

referensi :

[solved] convert htaccess apache to nginx wordpress rewrite rule

convert htaccess to nginx

convert htaccess apache to nginx

Saya baru migrasi dari apache2 ke nginx. Saya bingung bagaimana rewrite rules untuk wordpress di nginx ?
Berikut ini adalah htaccess saya sebelumnya…

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

# END WordPress

 

Jawaban


  1. open/buka nginx.conf di /etx/nginx/nginx.conf
    vi /etx/nginx/nginx.conf
  2. edit atau tambahkan barus seperti berikut, sesuaikan pathnya
    server {
      ..
      ..
    
      location /blog {
          try_files $uri $uri/ /blog/index.php?$args;
      }
    
      location ~ \.php$ {
          fastcgi_split_path_info ^(/blog)(/.*)$;
      }
    
      ..
      ..
    }

    asumsi wordpress punya subdirectory blog

lihat juga cara redirect dengan nginx disini
ada juga tool online untuk konversi disini

About the htaccess to nginx converter winginx.com
The service is to convert an Apache’s .htaccess to nginx configuration instructions. First of all, the service was thought as a mod_rewrite to nginx converter. However, it allows you to convert some other instructions that have reason to be ported from Apache to nginx. Note server instructions (e.g. php_value, etc.) are ignored. The converter does not check syntax, including regular expressions and logic errors. Please, check the result manually before use.

I’m having no luck converting htaccess rules to nginx rewrite. I’ve checked out the NginxRewriteModule documentation and have a few done, but the more complicate ones I’m at a loss for. Here’s what I’m looking at:

DevOps Expert | Haproxy – Instalasi & Konfigurasi pada VPS Ubuntu 18.04

haproxy load balancer server

Pada bab sebelumnya kita sudah mengetahui tentang apa, mengapa dan bagaimana cara kerja haproxy. Jika Anda belum mengetahui konsep dan alasan di balik haproxy sebaiknya Anda membacanya terlebih dahulu disini.

Haproxy Installation

Pertama kita create vps terlebih dahulu, bisa dengan digital ocean atau vultr atau yang lain nya. Jika belum mengetahui cara deploy (membuat) VPS dan instalasinya silahkan ikuti step by step disini. Selain VPS bisa juga menggunakan VM (virtual machine) atau bahkan dedicated computer.

Sediakan 3 VPS. Saya asumsikan sudah terinstall ubuntu server 18.04 atau keluarga debian, karena kurang lebih caranya sama kalau sesama keluarga linux debian. beda-beda dikit paling.
Pada VPS 1 (Hostname haproxy.qodrbee.com) lakukan

  1. Setting IP private
    edit file konfigurasi ip address

    root@haproxy:~# nano /etc/netplan/01-netcfg.yaml

    akan muncul isi file seperti ini lalu edit ip address menjadi 192.168.1.1/24

    network:
      version: 2
      renderer: networkd
      ethernets:
        ens3:
          dhcp4: yes
        ens7:
          addresses: [192.168.1.1/24]
          dhcp4: no
          dhcp6: no
          optional: true
          nameservers:
            addresses: [8.8.8.8,8.8.4.4]
    

    ens3 adalah ethernet yg terhubung ke public dan
    ens7 adalah yang terhubung ke private atau ke web server kita nantinya.
    Angka 3 dan 7 pada ens bisa berbeda untuk vps lain. Silahkan disesuaikan
    jika sudah simpan dengan ctrl+x lalu apply settingan tersebut dengan perintah

    root@haproxy:~# netplan apply

    cek ip address ens7 apakah sudah berubah

    root@haproxy:~# ifconfig
    ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.20.30.40  netmask 255.255.254.0  broadcast 10.20.30.255
            inet6 fe80::5400:1ff:fef4:c42e  prefixlen 64  scopeid 0x20<link>
            ether 56:00:01:f4:c4:ce  txqueuelen 1000  (Ethernet)
            RX packets 2008493  bytes 468728324 (468.7 MB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 1952526  bytes 1666990785 (1.6 GB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    ens7: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.1  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::5800:1ff:fef4:c48e  prefixlen 64  scopeid 0x20<link>
            ether 5a:00:01:f4:c4:ce  txqueuelen 1000  (Ethernet)
            RX packets 8122671  bytes 2208780819 (2.2 GB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 14258789  bytes 1377041568 (1.3 GB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 104578  bytes 9203032 (9.2 MB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 104578  bytes 9203032 (9.2 MB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
  2. Install haproxy
    update repo

    root@haproxy:~# apt update

    install haproxy

    root@haproxy:~# apt install haproxy

    Setelah terinstall, maka edit default config aplikasi haproxynya untuk mengarahkan settingan load balancernya, di /etc/default/haproxy , hilangkan tanda # di awal tulisan CONFIG dan ubah ENABLED menjadi 1.

    root@haproxy:~# nano /etc/default/haproxy
    # Defaults file for HAProxy
    #
    # This is sourced by both, the initscript and the systemd unit file, so do not
    # treat it as a shell script fragment.
    
    # Change the config file location if needed
    CONFIG="/etc/haproxy/haproxy.cfg"
    
    # Add extra flags here, see haproxy(1) for a few options
    #EXTRAOPTS="-de -m 16"
    ENABLED=1

    okey sekarang installasi haproxy sudah selesai, nanti kita lanjutkan untuk konfigurasinya.

Kemudian pada VPS 2 dan 3 (web1.qodrbee.com dan web2.qodrbee.com) kita lakukan

 

Haproxy Configuration

buka file konfigurasi haproxy

root@haproxy:~# nano /etc/haproxy/haproxy.cfg
global
    log 127.0.0.1 local0 notice   # menyimpan log pada 
                                  # syslog server (localhost)
    maxconn 2000          # max koneksi yang ditangani secara bersamaan
    user haproxy          # user yg menangani haproxy (jgn diganti)
    group haproxy         # group yg menangani haproxy (jgn diganti)

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    retries 3             # jml percobaan ketika timeout sebelum failure
    option redispatch     # meng-enable session redistribution 
                          # jika connection fail
    timeout connect  5s   # lama max sampai terhubung ke server 
                          # hingga berhasil
    timeout client  10s   # lama proses pengiriman data client/server
    timeout server  10s   # lama proses pengiriman data client/server

    listen web-load-balanced 0.0.0.0:80 # listen agar dapat di akses 
                                        # dari manapun
    mode http
    balance roundrobin    # algoritma metode load balancing
                          # ada pilihan algoritma roundrobin/static-rr/
                          # leastconn/source/uri/url_param
    option httpclose
    option forwardfor
    server web1 192.168.1.2:80 check # server backend, health check untuk 
    server web2 192.168.1.3:80 check # mengetahui status server backend

Oke konfigurasi standar haproxy sudah selasai. Selanjutnya kita uji coba. Start dulu haproxynya

root@haproxy:~# service haproxy start

buka komputer lain di luar VPS untuk melakukan request ke server load balancer sebut saja komputer user. Misal kita kasih IP address nya 192.168.1.111
kita lakukan dengan browser atau curl. Untuk uji coba kali ini kita pakai curl.
buat script php sebagai berikut untuk mengetahui IP server dan Client dari request.
simpan di /var/www/html/cek_loadbalance.php di server web1 dan web2

<?php
header('Content-Type: text/plain');
echo "Server IP: ".$_SERVER['SERVER_ADDR'];
echo "\nClient IP: ".$_SERVER['REMOTE_ADDR'];
echo "\nX-Forwarded-for: ".$_SERVER['HTTP_X_FORWARDED_FOR'];
?>

lalu dari komputer user lakukan

root@user:~# curl cek_loadbalance.php

seharusnya akan muncul hasil seperti ini

root@user:~$ curl http://192.168.1.1/cek_loadbalance.php
Server IP: 192.168.1.2
Client IP: 192.168.1.1
X-Forwarded-for: 192.168.1.111
root@user:~$ curl http://192.168.1.1/cek_loadbalance.php
Server IP: 192.168.1.3
Client IP: 192.168.1.1
X-Forwarded-for: 192.168.1.111

perhatikan server IP… dia berganti ganti karena kita memakai algoritma round robin. Request yang datang ke load balancer di arahkan bergantian ke 192.168.1.2 (web1) dan 192.168.1.3(web2)

X-Forwarded-for adalah IP komputer user

[Free Ebook] Artificial Intelligence with Python – Prateek Joshi

 

Artificial Intelligence with Python

Artificial Intelligence with Python

Free ebook Artificial Intelligence with Python ebook
Prateek Joshi – Jan 2017

446 pages

What will you learn

  • Step into the amazing world of intelligent apps using this comprehensive guide
  • Enter the world of Artificial Intelligence, explore it, and create your own applications
  • Work through simple yet insightful examples that will get you up and running with Artificial Intelligence in no time

Read free subscribe trial here

read more article about technology here

[tutorial] Install XAMPP untuk Local Server pada Windows

Pada kesempatan ini kita akan melakukan instalasi web server dan database server mysql yang di bundling dalam XAMPP. berikut langkah-langkahnya

  1. Download XAMPP dari https://www.apachefriends.org
  2. Install XAMPP
  3. Konfigurasi XAMPP

Mari kita jabarkan tiap poinnya

1. Download XAMPP

Silahkan pilih versi yang akan di download. Pastikan bahwa versi yang dipilih mendukung aplikasi yang akan kita bangun. Selain itu sesuaikan juga OS yang digunakan. Dalam tutorial ini kita install di OS windows. Kali ini kita pilih download versi 7.2.17

 

tunggu sampai download selesai. Jika sudah jalankan file tersebut untuk mulai proses instalasi.

2. Instalasi XAMPP

Jalankan file tersebut dengan doublie klik atau tekan enter.

 

Pilih lokasi directory tempat file-file akan di install. Misal kita pilih D:\xampp
klik next > next > finish. Selanjutnya jalankan file

3. Konfigurasi

Konfigurasi ini tergantung keperluan

 

tes12

[tutorial] BAB 1 Persiapan CRUD pada Framework Laravel dan VueJS

crud laravel vuejs

Persiapan

Setelah kita mulai mempelajari suatu bahasa pemrograman tentang konsep, fundamental dan basic nya maka saatnya kita praktek lebih dalam praktek teknis pembuatan aplikasi yang sederhana. Suatu aplikasi hampir dipastikan ada aksi-aksi seperti

  • Create – menambah data
  • Read – membaca dan menampilkan data
  • Update – meng-edit dan update data
  • Delete – menghapus data

Aksi-aksi tersebut sering dan sudah biasa disebut dengan CRUD. Namun kali ini kita akan belajar praktek dari 0 (from scratch) membuat CRUD plus dengan Search, Pagination dan Report (laporan).

Teknologi yang akan kita pelajari dan praktekan diantaranya adalah

  • Xampp – Bundling Web server (apache2), DB server (Mysql) di local komputer kita
  • Composer – package manager
  • Framework Laravel – easily and quickly PHP framework based on MVC design pattern
  • Blade Template Engine – default bawaan laravel
  • Mysql Database – database sejuta umat
  • Framework VueJS – framework JS
  • Vue Router – agar vueJS lebih mudah
  • Axios – untuk menghadle http request
  • Ajax Request – agar http request lebih nyaman dan cepat
  • Html Form, table dll – view html

Kita asumsikan OS yang dipakai adalah windows. Pada tahap persiapan ini yang perlu kita lakukan diantaranya adalah

  1. Instalasi Xampp
  2. Instalasi Composer
  3. Instalasi Laravel
  4. Integrasi VueJS
  5. Menyusun relasi database

karena kita mau menggunakan laravel maka kita perlu ketahui dulu requirement dari versi laravel yang akan kita install. Kita akan menggunakan laravel versi 5.7.
Update fitur laravel versi 5.7 diantaranya

  • Securing Laravel APIs with Auth0
  • Laravel Dump Server Integration
  • Laravel Nova
  • Guest User Gates / Policies
  • Email Verification
  • Optional Email Verification
  • URL Generator & Callable Syntax
  • Paginator
  • Improved Error Messages
  • Testing Artisan Commands

kemudian requirement untuk laravel 5.7 adalah

  • PHP >= 7.1.3
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
  • Ctype PHP Extension
  • JSON PHP Extension
  • BCMath PHP Extension

1. Instalasi XAMPP

Setelah kita mengetahui requirement Laravel maka kita perlu memilih versi Xampp yang mendukung requirement tersebut. Kita pilih xampp versi 7.2.17.
untuk detail tahap ini kita lanjutkan di sub bab berikutnya yakni installasi xampp di link ini

[tutorial] Analisa simple Log HaProxy dengan halog

haproxy load balancer server

How To Analyze HaProxy Logs

HALog adalah tool simple namun powerful untuk menganalisa HaProxy log. yuk lets try…

  1. Instalasi

    cd /usr/src
    wget http://haproxy.1wt.eu/download/1.5/src/devel/haproxy-1.5-dev11.tar.gz
    tar xzf haproxy-1.5-dev11.tar.gz
    cd haproxy-1.5-dev11/contrib/halog
    make
    cp halog /usr/bin/
  2. Get number of requests treated by the server (columns “tot_req”)

    cat /var/log/haproxy.log | halog -srv -H -q |awk 'NR==1; NR > 1 {print $0 | "sort -n -r -k 9"}' |column -t
  3. List servers by response time in milisecond (columns “avg_rt”)

    cat /var/log/haproxy.log | halog -srv -H -q |awk 'NR==1; NR > 1 {print $0 | "sort -n -r -k 12"}' |column -t
    
  4. List servers by application errors: HTTP status code 5xx (column “5xx”)

    cat /var/log/haproxy.log |halog -srv -H -q | awk 'NR==1; NR > 1 {print $0 | "sort -n -r -k 6"}' | column -t
    
  5. List servers errors related by application (prefixed by the backend name)

    cat /var/log/haproxy.log |halog -srv -H -q | awk 'NR==1; NR > 1 {print $0 | "sort -n -r -k 5"}' | column -t
    
  6. List URLs by server computation time in milliseconds (column “okavg”)

    cat /var/log/haproxy.log | halog -ut -H -q | column -t
    
  7. List URLs by errors (column “err”)

    cat /var/log/haproxy.log | halog -ue -H -q | column -t
    
  8. List URLs by missing files: HTTP status code 404 (column “req”)

    cat /var/log/haproxy.log | halog -u -H -q -hs 404 | column -t
    
  9. List URLs by number of request(column “req”)

    cat /var/log/haproxy.log | halog -u -H -q | awk 'NR==1; NR > 1 {print $0 | "sort -n -r -k 1"}' | column -t
    

Jangan lupa sesuaikan path log haproxy nya.
untuk cara install dan setting haproxy sendiri ada disini

referensi : https://haproxy-log-analyzer.readthedocs.io/

[tutorial] bagaimana melakukan redirect di nginx

redirect di nginx

Kapan kita melakukan redirect?

Ketika anda punya broken link yang ingin supaya link nya dapat dipakai lagi, semisal karena sudah terindex oleh google. Bisa juga karena web anda sedang maintenance sementara sehingga redirect kehalaman maintenance agar pengunjung dapat info.
Okey… disini saya anggap temen2 sudah tau apa itu file htaccess, karena kita akan langsung kepada intinya. Bagi yang belum mengetahui tentang htaccess bisa baca-baca disini.

Bagaimana caranya?

untuk melakukan redirect di nginx bisa kita lakukan dengan meng-edit file konfigurasi di nginx atau di konfigurasi domain nginx.

  1. pake return (example : return 301 https://example.com$request_uri;)
    server {
        listen 80;
        listen [::]:80;
        hostname example.com www.example.com;
        return 301 https://example.com$request_uri;
    }
  2. pake regex (example : rewrite ^/foo/(bar)/(.*)$ https://$server_name/$1/$2 permanent; )
    server {
        listen 80;
        listen [::]:80;
        hostname example.com www.example.com;
        root /var/www/example.com/public;
        rewrite ^/foo/(bar)/(.*)$ $scheme://$server_name/$1/$2 permanent;
    }
  3. pake map
    include redirect-map.conf;
    server {
        […]
        if ( $redirect_uri ) {
            return 301 $redirect_uri;
        }
    }

    redirect-map.conf isinya …

    map $request_uri $redirect_uri {
        /home.html          /beranda;
        /usman.html         /cakep;
        /ribuantoro.html    /ganteng;
    }
  4. HTTP to HTTPS
    return 301 https://$host$request_uri;
  5. non-www to www
    if ( $host !~ ^www\. ) {
        return 301 $scheme://www.$host$request_uri;
    }
  6. www to non-www
    if ( $host ~ ^www\.(?<domain>.+)$ ) {
        return 301 $scheme://$domain$request_uri;
    }

     

Selain redirect di nginx bisa juga redirect dengan file htaccess namun menggunakan webserver apache. berikut caranya disini
Semoga bermanfaat.

referensi :
nginx official

[compare] Perbedaan dan perbandingan WebSocket vs Socket.io

WebSocket vs socket.io

Apa perbedaan websocket dengan socket.io

Oke pertama kita bahas dulu tentang websocket.
Websocket adalah Protokol komunikasi yang menyediakan komunikasi dua arah antara Klien dan Server melalui koneksi TCP, WebSocket selalu open sepanjang waktu sehingga mereka memungkinkan transfer data real-time.
Ketika klien melakukan request ke Server, koneksi tidak tertutup (closed) saat response diterima, koneksi akan tetap open sampai klien atau server mengakhiri request.

Poin penting pada websocket diantaranya

  • WebSocket membantu komunikasi realtime antara client dan web server.
  • WebSocket membantu komunikasi cross-platform antara client dan web server.
  • WebSocket membantu kebutuhan bisnis di seluruh dunia untuk realtime web aplikasi.
  • WebSocket membantu koneksi pada HTTP dalam komunikasi full duplex
  • WebSocket menghilangkan overhead and mengurangi complexity.
  • WebSocket membuat komunikasi real-time lebih mudah dan efisien.

Skema Protokol WebSocket :

WebSocket vs socket.io

Selanjutnya kita lihat tentang Socket.io
Socket.io adalah library yang memungkinkan komunikasi real-time dan full dupleks antara Klien dan server Web. Ia menggunakan protokol WebSocket sebagai interface nya. Secara umum socket.io dibagi menjadi dua bagian yakni sisi client berupa library yang berjalan di browser dan sisi server berjalan di web server.

Poin penting pada socket.io diantaranya

  • Socket.io dapat melakukan broadcast ke beberapa socket sekaligus dan dapat menangani koneksi secara transparan.
  • Socket.io bekerja di semua platform, server atau device dan meningkatkan kualitas, keandalan, dan kecepatan.
  • Secara otomatis meningkatkan requirement ke WebSocket jika diperlukan.
  • Socket.io mengimplementasikan real-time transport protocol real-time secara custom dibanding protokol lainnya.
  • Socket.io membutuhkan dua library untuk digunakan sisi Klien dan library sisi server.
  • Socket.io berjalan dengan work-based event. ada beberapa event khusus yang dapat diakses menggunakan Socket di sisi server seperti Connect, message, Disconnect, Ping dan Reconnect.
  • Ada beberapa event yang dijalankan khusus oleh Klien seperti Connect, connect- error, connect-timeout and Reconnect
  • Secara teknis Socket.io menangani komunikasi full dupleks secara real time.
  • Socket.io juga menangani ketidakkonsistenan dari browser.
  • Socket.io juga memberikan dukungan fitur tambahan untuk infrastruktur publikasi dasar dan melakukan reconnect secara otomatis.
  • Saat ini, AFAIK adalah yang paling sering digunakan dan lebih mudah untuk membantu dalam pengembangan vanilla web soket.

Websocket VS Socket.io

mari kita lihat perbedaan nya dalam table perbandingan

No.WebSocketSocket.io
1protocol yang tebangun pada koneksi TCPlibrary untuk berjalan dengan WebSocket
2full duplex communication pada koneksi TCPkomunikasi event-based antara browser dan server.
3Proxy dan load balancer tidak didukung di WebSocket.koneksi dapat terbangun walaupun lewat proxi and load balancer.
4.tidak support broadcasting.supports broadcasting.
5.tidak punya a fallback option.supports fallback options.

Kesimpulan nya

Untuk kebutuhan realtime communication socket.io melengkapi websocket dalam praktek pengembangan aplikasinya. Untuk lebih jelasnya silahkan praktekan secara teknis penggunaannya.

referensi : https://educba.com