Pusher là gì

Hi cả nhà, phía trên là bài viết đầu tiên của mình trên kinhdientamquoc.vn nên gồm gì không hay mong chúng ta thông cảm :D

Realtime là gì ?

Như chúng ta đều sẽ biết thì realtime (thời gian thực) là 1 trong những cụm từ không có gì xa lạ so với các trang web nữa, duy nhất là vào thời đại technology web phát triển như vũ bão hiện nay. Realtime ám chỉ răng việc phần mềm (ở phía trên mình nói về chủ yếu đuối là website) hoàn toàn có thể phản hồi và tương tác người dùng một cách tức thì mà người dùng không cần chờ đón lâu hoặc refresh lại áp dụng hoặc trình duyệt. Bạn cũng có thể nhìn thấy realtime sinh sống khắp phần nhiều nơi: thực tiễn nhất đó là qua các ứng dụng nhắn tin, hoặc bảng tin newsfeed bên trên Facebook. Vấn đề đặc trưng là: làm sao để biến ứng dụng của họ thành realtime ?

Pusher là gì, pusher có công dụng gì trong realtime ?

Ta hãy thu bé dại bài toán của mình lại: tôi cần một website, mà mỗi khi tôi thêm 1 phiên bản ghi vào database, phía trình xem xét của người tiêu dùng sẽ ngay mau lẹ alert một cái thông báo nho nhỏ: "Một bản ghi vừa được thêm vào db, check đê". Vớ nhiên, người dùng sẽ ko F5 tuyệt làm bất cứ thao tác gì cả, gần như thứ tự động nhé :D

(Có một phương pháp workaround bản thân vẫn thi thoảng sử dụng trong một số ứng dụng khuôn khổ siêu siêu nhỏ dại là điện thoại tư vấn 1 dòng ajax 10s một đợt lên server, nhưng tất nhiên là cách đây quá thô lậu, cùng ta sẽ không bàn tới ).

Bạn đang xem: Pusher là gì

Thông thường đề cập đến xử lý vấn đề này, ta vẫn nghĩ tới combo nodejs + socket.io, hoặc pubsub của redis. Theo như bản thân Google thì tất cả cả tá các thư viện, framework để triển khai việc này. Tuy nhiên, tại đây mình hướng đến Pusher: https://pusher.com/

Pusher là gì cố ?

Trang chủ pusher định nghĩa:

Pusher is a simple hosted API for quickly, easily and securely integrating realtime bi-directional functionality via WebSockets lớn web and mobile apps, or any other mạng internet connected device.

Nói solo giản, pusher là 1 trong dịch vụ cloud, tạo ra một hệ thống trung gian giúp bạn cũng có thể xử lý những tác vụ thời gian thực. Tài liệu được gửi đến pusher, với pusher lại gởi nó đi tới những client vẫn subscribe (đăng ký) và những channel.

Xem thêm: Tải Hơn 3000 Từ Vựng Tiếng Anh Thông Dụng Theo Chủ Đề (Pdf) Free

*

Các bạn muốn tìm hiểu rõ hơn có thể check: https://pusher.com/docs/

Slanger sửa chữa cho Pusher

Dùng pusher trái thực rất là tiện, rút ngắn thời hạn dev siêu nhanh. Mặc dù nhiên, pusher là một ứng dụng mất phí. Khôn xiết may, chúng ta có Slanger, một ứng dụng mở cửa source, mang đến phép chúng ta tự cài đặt để dựng lên một hệ thống có nhân tài y hệt pusher. Với hay hơn nữa, Slanger trọn vẹn tương say mê với những thư viện của pusher (do dùng chung một protocol), nghĩa là trường hợp ứng dụng của người sử dụng đang xài Pusher thì rất có thể chuyển lịch sự Slanger mà không gặp bất cứ khó khăn gì, quá tuyệt đúng không ạ

Cài đặt Slanger

Giờ không lan man nữa, ta vào phần chính, cài đặt Slanger. Mình thao tác trên hệ thống Ubuntu 16.04 nhé.

Link github Slanger: https://github.com/stevegraham/slanger/

Bước 1 khi cài Slanger là bạn cần phải cài Redis (Redis là gì, các chúng ta cũng có thể tìm hiểu tại: https://redis.io/

Các bước cài Redis trên ubuntu

Trước tiên ta buộc phải update Ubuntu với cài một số dependencies cần thiết đã nhé

$ sudo apt-get update$ sudo apt-get install build-essential tcl

Sau đó thì tải về và complie redis nha:

$ wget http://download.redis.io/releases/redis-4.0.2.tar.gz$ tar xzf redis-4.0.2.tar.gz$ cd redis-4.0.2$ make

Sau cách này, chúng ta gõ redis-server để chạy server redis nhé. Vắt là xong, bọn họ đã bao gồm redis roài :D

Bước 2

Slanger được viết bằng ruby, cùng nó là 1 gem của ruby (Ruby gọi các package của chính nó là các gem). Chính vì thế trước không còn ta phải cài Ruby vẫn nhé. Đầu tiên là cài các thư viện đề nghị thiết:

apt-get -y install build-essential zlib1g-dev libssl-dev libreadline6-dev libyaml-devcd /tmp

Mình download ruby 2.1.2, bạn dạng hoạt động định hình nhất cùng với Slanger

wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz

Giải nén:

tar -xvzf ruby-2.1.2.tar.gzcd ruby-2.1.2/

Compile:

./configure --prefix=/usr/localmakemake install

Cài gem bundler để cai quản các version gem ruby

gem install bundler

Cài ruby hoàn thành thì ta tải Slanger, là một trong gem của Ruby:

gem install slanger

Xong bước này, ta đã tất cả server Slanger, hura

*

Ta chạy Slanger lên nhé, câu lệnh: slanger --app_key mykeymouse --secret theSecret

Bạn để ý nhé, app_key với secret là 2 yếu tố quan trọng, các bạn chạy vps Slanger cùng với 2 tham số này ra sao thì client cũng dùng luôn luôn tham số này để kết nối tới server. Ví dụ:

slanger --app_key 111 --secret 222

thì client cũng xài app_key với secret_key này để kết nối tới server.

Cài thành công Slanger thì nó sẽ như vậy này:

*

Vậy là ta đã thành công, giờ kiểm tra thôi

Test

Test thì cũng đối kháng giản, mình đã dev cùng với Laravel yêu cầu mình cài đặt cái package này của bên Pusher nhé:

$ composer require pusher/pusher-php-server

Xong xuôi thì chúng ta chạy đoạn code này

$app_key = "your-app-key"; //Bạn thay tương xứng app-key khi bạn chạy hệ thống Slanger$app_secret = "your-app-secret"; // //Bạn thay tương xứng app-secret khi chúng ta chạy vps Slanger$app_cluster = "mt1";$host = "ip_may_cai_slanger";$port="4567" //Mặc định Slanger xài cái port này mang lại rest api$pusher = new PusherPusher( $app_key, $app_secret, $app_id, array("cluster" => $app_cluster), $host, $port);$pusher->trigger( "my-channel", "my-event", "test-nhan" ); Giờ làm 1 file client đơn giản, nội dung như vậy này

"> Xong rồi . Giờ đồng hồ mỗi khi bạn run đoạn code PHP trên, trường hợp client rất có thể alert được cái chữ "test-nhan" là đã thành công nhé

Hy vọng qua bài viết còn tương đối thô sơ này, các bạn có thể tự mình cài đặt và triển khai được một hệ thống realtime đối với Slanger nhé. Cám ơn các bạn rất nhiều