[JS][PHP] Membuat Websocket Javascript

Cara membuat websocket dengan Javascript (JS) dan PHP
Requirements:
  1. PHP 5.6+ (minimum) 

Websocket merupakan standard baru untuk berkomunikasi, dan cocok untuk aplikasi chat, live server, live listener. Hampir sama dengan AJAX namun perbedaannya ada pada kecepatan dan CPU usage pada device client maupun server. Intinya lebih ringan lah.
Websocket ini dapat menerima request apapun dan mendistribusikannya secara instant dari perubahan data sebelumnya. Berikut Cara membuat websocket tanpa NODEJS menggunakan Pure Javascript dan PHP:

websocket.js
/** websocket steam */
var socket;
socket_start(); //start websocket

function socket_start() {
  if (!socket) { //if socket is null
    console.log('WebSocket Started'); //start server
    socket = socket_server();
  }
  try {
    socket.onopen = function (msg) {
      //console.log('socket initialized');
    };
    socket.onmessage = function (msg) {
      var data = JSON.parse(msg.data);
      //PARSING RESPONSE DATA
    };
    socket.onclose = function (msg) {
      console.log({ closed: socket });
    };
  }
  catch (ex) {
    console.log(ex);
  }
}

function socket_server() {
  console.log('Socket Initialized');
  // Set YOUR PHP FILE URL
  var host = '/websocket/server.php'; 
  if (!!window.EventSource) {
    var socket = new EventSource(host);
  } else {
    var socket = new WebSocket(host);
  }
  return socket;
}

function socket_stop() {
  if (socket != null) {
    console.log("WebSocket Stopped");
    socket.close();
    socket = null;
  }
}

function socket_check(){
  return socket;
}

Usage:

  1. Checking socket: befungsi untuk mengecek apakah socket sudah berjalan atau tidak.
  2. if (!socket_check()){
      /* Socket tidak berjalan */
    }
    --- OR ---
    if (socket_check() === null){
      /* Socket tidak berjalan */
    }
    --- OR ---
    if (socket_check()){
      /* Socket berjalan */
    }
    
  3. Parsing response data
  4. socket.onmessage = function (msg) { //function socket_start()
       var data = JSON.parse(msg.data);
       //PARSING RESPONSE DATA DISINI
    };
    

server.php
<?php
header('X-Robots-Tag: noindex, nofollow', true);
header('Content-Type: text/event-stream');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Cache-Control: no-cache');

function SEND($id, $msg)
{
  echo "id: $id" . PHP_EOL;
  $data = trim(json_encode([ //encoding JSON untuk data yang panjang
    'array_key' => 'array_value',
  ]));
  echo "data: $data" . PHP_EOL;
  echo PHP_EOL;
  ob_flush();
  flush();
}

$serverTime = time();

SEND($serverTime, 'server time: ' . date('h:i:s', time()));
exit;

Subscribe to receive free email updates:

0 Response to "[JS][PHP] Membuat Websocket Javascript"

Post a Comment

Bila Ada posting yang kurang, atau error atau yang lainnya, silahkan tinggalkan komentar agar artikel/post di perbaiki.
Jangan Lupa Cek Box "Notify Me" agar tahu komentar kamu dibalas oleh saya.

If there are any posts that are missing, or error or anything else, please leave a comment for the article / post to be fixed.
Do not Forget Check Box "Notify Me" to know our comments replied by me.