Cập nhật ngày 11/11/2021

Việc sử dụng realtime với PHP luôn là một vấn đề lan giải với anh em khi chúng ta bắt đầu tìm hiểu nó, có rất nhiều giải pháp để thực hiện realtime với PHP sử dụng Pusher, Socket.io…

Bài viết ngày hôm nay, mình sẽ hướng dẫn bạn sử dụng Heroku làm server chạy Socket. Trong quá trình vận hành, Heroku App có thể bị rơi vào trạng thái ngủ đông nên bạn hãy sử dụng pingdom để nó đạt thời gian Uptime cao và không gây gián đoạn đến trang web của bạn.

Truy cập địa chỉ sau và deploy

https://github.com/ging-dev/socket-server

Mặc định key Secret của server sẽ là gingdev, để thay đổi key mặc định này, bạn cần truy cập vào Heroku->settings và thêm biến môi trường SECRET để tùy chỉn secret key của bạn

Tiếp theo, trên hosting của bạn (Client) chạy Composer

composer require ging-dev/socket-client dev-master

Để truyền event đến server của heroku, ta thực hiện:

<?php

use Gingdev\SocketIo\Client;

require 'vendor/autoload.php';

$client = new Client('https://yourapp.herokuapp.com', 'secret-key');

$client->trigger('news', [
    'message' => 'Xin chào'
]); // return true if success

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
<script>
    var socket = io('https://ging-socket.herokuapp.com'); 
    socket.on('news', (data) => alert(data.message));
</script>

Copy vui lòng ghi nguồn: Code by Ginbert