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/gingteam/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
<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