Tags

, , , ,

Sebelumnya silakan merujuk tulisan saya tentang Server Sent Event

Pertama, kita buat dulu tabel yang diperlukan. Sekemanya

-- Table: chat_account

CREATE TABLE chat_account
(
  id serial NOT NULL,
  name character varying(32),
  last_actifity integer,
  CONSTRAINT chat_account_pkey PRIMARY KEY (id ),
  CONSTRAINT chat_account_name_key UNIQUE (name )
);


-- Table: chat

CREATE TABLE chat
(
  id serial NOT NULL,
  "time" integer,
  "from" integer,
  "to" integer,
  message character varying(128),
  read integer NOT NULL DEFAULT 0,
  CONSTRAINT chat_pkey PRIMARY KEY (id )
)

Tentu saja tabel chat_account bisa diganti dengan table user yang sudah ada. Tetapi di contoh ini kita buat terpisah agar akun chat bisa dicreate secara bebas.

Berikutnya kita buat model untuk kedua tabel tersebut. Model sederhana tanpa rule validasi. Silakan tambahkan sendiri jika diperlukan

Selanjutnya adalah membuat controller. Controller ini menangani logic chat seperti kirim pesan, kirim notifikasi, melist user dan lain-lain

Tantangan sebenarnya dalam membuat aplikasi ini adalah membuat view-nya, juga javascript yang terkait dengannya. Jangan salahkan saya kalau tampilannya jelek. Saya tidak ahli di bidang ini 😀

Letakkan file-file tersebut dalam susunan

  • components
    • SSE.php
  • controllers
    • ChatController.php
  • models
    • Chat.php
    • ChatAccount.php
  • views/chat
    • index.php
    • script.js.php

Jika sudah semua, kita bisa mengakses aplikasi yang dibuat dengan url http://localhost/path/to/app/index.php?r=chat.

Jangan lupa class SSE dari artikel saya sebelumnya Pengenalan SSE

Kode lengkapnya bisa dilihat di https://github.com/demoyii/yii2-demo
untuk demonya http://mdmunir.dev.php.or.id/chat

Advertisements